想象以下DB表:
Clients Users
| Id | name | user_id | | ID | name |
| -- | ----- | ------ | | -- | ------ |
| 1 | NULL | 1 | | 1 | David |
| 2 | Peter | NULL |
并非每个客户端都自动成为用户,但用户可能拥有客户端帐户。Users表只包含注册用户,如果用户是客户端(不必是),则创建客户端帐户。
我已成功地使这些表之间的关系是拉威尔。能言善辩的提问很好,例如:
clients.php
public function userAcc() {
return $this->hasOne('User', 'id', 'user_id');
}
user.php
public function clientAcc() {
return $this->hasOne('Clients', 'user_id', 'id');
}
问题是,当我查询这些表时:
Clients::with('userAcc')->get()
鉴于我必须做很多如果,比如:
@if($client->userAcc)
{!! $client->userAcc->name !!}
@else
{!! $client->name !!}
@endif
laravel中是否有任何变通方法允许我在每个select查询上格式化集合?类似于Accessor,但在整个集合中,因此我将能够在视图中执行以下操作:
{!! $client->realname !!}
它从特定的表中写入客户端名称。
非常感谢任何建议
您可以为此创建一个方法:
public function getName()
{
return $this->userAcc?$this->userAcc->name:$this->name;
}
在您的边栏选项卡中,只需调用函数:
{{$client->getName()}}
这是实现这一目标的Laravel方法:
class Client extends Model {
public $appends = ['realname'];
public function userAcc() {
return $this->hasOne('User', 'id', 'user_id');
}
public function getRealnameAttribute(){
return $this->userAcc? $this->userAcc->name : $this->name;
}
现在可以通过$client访问它-
问题陈述:在JPA hibernate中,我执行了一个方法
问题内容: 我要么变老,要么我需要写的查询变得越来越复杂。以下查询将获取与该用户的所有关联。 该表为(,,,); 现在,我还需要通过 独立查询如下所示: 但是,是否可以将这两个查询合并为一个查询?我的逻辑认为应该这样,尽管我不知道如何进行实际的JOIN。 问题答案: 我可能会使用UNION。
提前感谢! UPDATE:这是两个不同的查询,而不是delete查询中的语句。
问题内容: 我想将两个选择查询与结合在一起。 如何使用第二个中的第一个结果? 问题答案: 使用 CTE 可以在多个查询中重用子查询的结果。 为此,您需要PostgreSQL 8.4+: 您最有可能想要而不是。不排除重复项,这样可以更快。
问题内容: 我有以下查询,它为每个查询获取最新的N : 我有指标的,,。 这是我想出的唯一解决方案,每个站最多可以获取单个记录。但是,它非常慢(81000条记录的表为154.0毫秒)。 如何加快查询速度? 问题答案: 假设至少Postgres 9.3。 指数 首先,多列索引将有助于: 的拟合度稍好一些,但如果不使用,索引仍将以几乎相同的速度向后扫描。 假设已定义,否则在索引 和 查询中考虑: Po
需求:从一个用户界面,我得到一个数据库表的选定列表。这些表中的数据将被提取并存储在文件位置。我们希望使用NiFi Rest API,因为有定制UI的需求。因此,我们使用REST API调用NiFi处理器。 问题是如何在循环中为在分隔字符串中接收的每个表名调用ExecuteSQL。 如果需要更多的信息,请让我知道。