Laravel 4 使用::find()加载Laravel 4

Laravel 4 使用::find()加载Laravel 4,laravel-4,Laravel 4,假设我有两个表轮班和用户。每个shift都会有一个与之关联的用户。我想得到shift和用户的JSON返回。我尝试了以下命令: return Shift::find($id)->with('User')->get() 这不管用。然而,这确实: return Shift::where('id', '=', $id)->with('User')->get() 为什么??如何使用第一个命令?get和find都是执行方法。也就是说,它们将触发查询并返回结果。基本上,你不应该在一

假设我有两个表轮班用户。每个
shift
都会有一个与之关联的用户。我想得到shift和用户的JSON返回。我尝试了以下命令:

return Shift::find($id)->with('User')->get()
这不管用。然而,这确实:

return Shift::where('id', '=', $id)->with('User')->get()

为什么??如何使用第一个命令?

get
find
都是执行方法。也就是说,它们将触发查询并返回结果。基本上,你不应该在一次通话中使用其中的两个。它要么是
find
get
,要么是
first
,而不是它们的组合

find
将返回单个模型并基于模型的主键创建一个条件,通常
where('id','=',$id)

get
将返回模型集合

首先
将返回单个模型

听起来你需要:

return Shift::with('user')->find($id);
其中,
user
是您的
Shift
模型上的关系方法

public function user()
{
    return $this->belongsTo('User');
}