逻辑:
company
有users
个users
,alerts
可以创建alerts
,因此,许多user
属于alert
个location
。每个public function getAdminIndex()
{
$company_id = User::find(Auth::user()->id)
->companies()
->first()
->id;
$alerts = Company::with('users.alerts.location')
->where('id', '=', $company_id)
->get();
$this->layout->content = View::make('agents.admin.index',
array('alerts' => $alerts));
}
也有一个{{ $alert->users->alerts->reference}}
关系,其中一个警报属于一个位置。
因为这是一个非常庞大的查询,我通过急切加载实现了这一点(我想成功!)。
我想要实现的目标是,对于经过身份验证的用户所属的公司,获取适用于同一公司的所有其他用户及其所有警报(包括位置)。
$alert
我现在唯一的问题是尝试打印相关信息。我想打印一下'参考'警报表中的列,首先在foreach循环中:
{{1}}
但我一直在
ErrorException未定义的属性: 照亮\数据库\雄辩\收藏:: $警告
我的逻辑是,该功能将转向公司 - >用户 - >警报 - > ... ...这是他们在各自模型中引用的方式。
如果我回复{{1}},所有信息都在那里,以一种巨大的不可读的jSON格式!
任何帮助解释如何蜿蜒通过查询数据都将非常感激。
答案 0 :(得分:0)
您的解决方案对我来说非常复杂。如果你分开你的要求:
我想要实现的是,
对于经过身份验证的用户所属的公司,
<?php
$company = Auth::user()->company;
获取适用于同一公司的所有其他用户
<?php
$other_users = $company->users()->where('id', '!=', Auth::user()->id)->get();
以及所有警报(包括位置)。
<?php
$other_users->load('alerts.locations');
或者,合并:
<?php
$other_users = $company->users()
->where('id', '!=', Auth::user()->id)
->with('alerts.locations')
->get();
关于您的其他问题:
如果我回显$ alert,所有信息都在那里,以一种巨大的不可读的jSON格式!
尝试dd($alert->toArray())