我知道这个问题已经被问过很多次了, 但是没有一个解决方案适用于我的问题.我在一对多的关系上遇到了问题(一个文件可以有一个状态, 但是状态可以分配给很多文件), 当我尝试使用它作为这样的关系时, 它总是返回null:
$file = File::orderBy('updated_at', 'DESC')->first();
return $file->status;
而当我尝试使用关系为so:
$file = File::orderBy('updated_at', 'DESC')->with('status')->first();
return $file->status;
我得到一个错误
Call to undefined relationship [status] on model [App\File]
我确定所有的设置都是正确的,见models bellowFile.php。
public function status()
{
return $this->belongsTo('App\Status', 'status_id');
}
"状态 "表。
另外,反向关系也可以(当我试图获取特定状态的文件时)。
public function files()
{
return $this->hasMany('App\File', 'status_id'); //This works
}
Call to undefined relationship [status] on model [App\File]
你得到的错误是因为你的类名和函数名是一样的,当你做这样的函数,它的工作原理是这样的 构造法 职能。
public function filestatus()
{
return $this->belongsTo('App\Status', 'status_id');
}
$file = File::orderBy('updated_at', 'DESC')->with('filestatus')->first();
return $file->status;