Ila*_*kel 3 laravel eloquent laravel-5 laravel-eloquent
我有2个表,“客户和公司”,每个公司有很多客户,每个客户有一个公司
这是我的模型:
class Client extends Model
{
public function company(){
return $this->hasOne('App\Company');
}
}
class Company extends Model
{
public function clients(){
return $this->hasMany('App\Client');
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取公司所有客户的列表,这就是我试图做的:
$clients = Company::where('guid',$guid)->clients()->all();
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
BadMethodCallException in Macroable.php line 74:
Method clients does not exist.
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
$clients = Company::where('guid',$guid);
Run Code Online (Sandbox Code Playgroud)
这将返回Builder类,因此当您添加->clients()
它时会给您错误,因为builder类没有client方法,而模型却具有。
正确的代码是..
$clients = Company::with('clients')->where('guid',$guid)->get();
Run Code Online (Sandbox Code Playgroud)
PS。不要使用->all()
,除非它的像$companies = Company::all()
归档时间: |
|
查看次数: |
9652 次 |
最近记录: |