为什么我的多对一laravel关系不能工作?

问题描述 投票:1回答:1

我知道这个问题已经被问过很多次了, 但是没有一个解决方案适用于我的问题.我在一对多的关系上遇到了问题(一个文件可以有一个状态, 但是状态可以分配给很多文件), 当我尝试使用它作为这样的关系时, 它总是返回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');
}

"文件 "表enter image description here

"状态 "表。

enter image description here

另外,反向关系也可以(当我试图获取特定状态的文件时)。

public function files()
{
    return $this->hasMany('App\File', 'status_id'); //This works
}
laravel relationship one-to-many
1个回答
0
投票
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;
© www.soinside.com 2019 - 2024. All rights reserved.