这是我的路线
Route::get('desktops/{desktop}','DesktopsController@getdesktop');
这是我的控制器方法
public function getdesktop($identifier)
{
$desktop = Desktop::all()->where('identifier',$identifier);
$casings = $desktop->casings();
dd($casings);
}
我添加了App \ Desktop,这是我在Desktop Class / Model
中定义的框架方法public function casings()
{
return $this->hasMany('App\Casing');
}
现在它似乎正在修补,但是当我在浏览器中打开它时会抛出一个未找到的方法或者确切的BadMethodCallException异常,即使我在类中定义了方法。我似乎无法弄清楚问题。
答案 0 :(得分:0)
当您在模型中定义关系时,它会作为属性而不是集合中的函数传入到eloquent对象中。
因此,您需要在没有()
的情况下访问它:
$casings = $desktop->casings;
您可以在docs。
中找到有关访问关系的更多信息答案 1 :(得分:0)
我正在使用这个
desktop = Desktop::all()->where('identifier',$identifier);
返回了一个包含多条记录的记录集。即使只有1条记录,它也将它视为一个集合。所以我尝试改变
desktop = Desktop::all()->where('identifier',$identifier)->first();
只提取了一条记录并且有效。