而不是做这样的事情(我在网站上做过几十次):
$posts = Post::with('user')
->with('image')
->get();
每当调用with('image')
时,是否可以自动调用with('user')
?所以最后,我可以做到:
$posts = Post::with('user')
->get();
仍然急切加载image
?
答案 0 :(得分:3)
在模型中添加以下内容:
protected $with = array('image');
这应该可以解决问题。
$ with 属性列出了每个查询都应该热切加载的关系。
答案 1 :(得分:1)
这里的另一个解决方案就像一个魅力!
class Post extends Model {
protected $table = 'posts';
protected $fillable = [ ... ];
protected $hidden = array('created_at','updated_at');
public function user()
{
return $this->belongsTo('App\Models\User');
}
public function userImage()
{
return $this->belongsTo('App\Models\User')->with('image');
}
}
$posts = Post::with('userImage')->get();
使用此功能,只要您不想拨打其他电话来检索图片,您仍可以使用自己的用户信息$posts = Post::with('user')->get();
。