【发布时间】:2018-04-22 08:30:45
【问题描述】:
这是我的代码:
$guarantee_tickets = DB::select("(select ga.id, '' as unique_product_id, ga.user_id, ga.submit_time, '' as title, ga.description, '' as tracking_code, '' as closed, '' as close_date, ga.isAdminNote from guarantee_tickets_answers ga where guarantee_tickets_id = $request->id order by ga.id desc)
union all
(select gt.id, gt.unique_product_id, gt.user_id, gt.submit_time, gt.title, gt.description, gt.tracking_code, gt.closed, gt.close_date, '' from guarantee_tickets gt where id = $request->id)");
还有这个:
dd($guarantee_tickets->user->name);
抛出:
未定义属性:stdClass::$user
我该如何解决?
注意到我在 guarantee_tickets 和 guarantee_tickets_answers 模型中都有这个:
public function user()
{
return $this->hasOne(User::class, 'id', 'user_id');
}
【问题讨论】:
-
DB::Select 没有使用 Eloquent,它正在执行原始查询。
-
你不能有一个雄辩的集合有两个不同的模型。如果你只想要一个模型,你可以使用
Model::hydrateRaw()而不是DB::select()。
标签: php mysql laravel orm relational-database