我已经参考了一些在线参考资料,以了解在laravel中使用With方法做什么,但仍然不了解。 Laravel with(): What this method does?
有些代码我不理解,我可以知道a,b,c,d,e,f指的是什么吗?
$example = Test::with('a', 'b', 'c',
'd', 'e', 'f');
答案 0 :(得分:2)
让我们给您直接的例子。如果您有 user 表,并且该用户与多个表相关,对吗?它也属于多个表吗?
在这里,我带四个桌子。
城市
用户
用户个人资料
用户文档
用户
belongsTo
一个城市,用户
has one
个人资料用户
has many
文档。
现在,在用户模型中,您将定义与每个表的关系。
User.php
//User belongs To Country
public function city(){
return $this->belongsTo('App\City','city_id','id')->withDefault();
}
//User hasone profile
public function profile(){
return $this->hasOne('App\Profile','user_id','id')->withDefault();
}
//User hasmany document
public function documents(){
return $this->hasMany('App\UserDocument','user_id','id')->withDefault();
}
现在,如果您想访问控制器中的所有数据,则可以使用 with()
控制器
App\User::with('country','profile','documents')->get();
您将以
的形式获取对象中的所有数据用户
id
名称
{城市数据}
{个人资料}
{documents}
此外,您还可以获取多个模型嵌套关系,例如city属于州,并且如果要使用city获取州数据,
User::with('city.state','profile','documents')->get():
//define state relationship in city model you'll get state data with city as well.
您也可以在
中添加条件with()
User::with(['document'=>function ($q){
$q->where('type','pdf');
}]);