我的应用上的每个公司都可以存储自己的事件。
公司及其事件通过以下 hasMany
关系相关:
/**
* The events that belong to the company.
*/
public function events()
{
return $this->hasMany('App\Event');
}
要列出公司的事件,我使用:
Auth::user()->company->events
由于每个事件存储了很多我在查询hasMany
时不需要的数据,我想自定义关系以仅选择id
和 name
列而不是整行。
我的 hasMany
关系查询类似于
DB::table('events')->where('company_id', Auth::id())->select('id', 'name')->get();
如何获取从此结果返回的集合并将其用作我的 hasMany
关系的查询,然后该查询将正确返回事件实例的集合?
最佳答案
在您的events
方法中添加过滤器,例如:
public function events()
{
return $this->hasMany('App\Event')->select('id', 'company_id', 'name');
}
然后这样调用它:
Auth::user()->company->events
重要更新:“company_id”对于公司->事件链接是必需的,否则“事件”关系始终返回空数组
关于laravel - 使用 select() 自定义 hasMany 关系查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745229/