Laravel 的数据库查询发生在啥时候?
刚接触Laravel, 有个根本性的疑问一直在困扰我, 一直没搞明白, controller拿到访问请求之后, 啥时候去查询的数据库呢?
例如, 我有一个UserController的控制器, 有个function是show,
public function show(User $user)
{
return view('users.show', compact('user'));
}
我愚蠢的这么理解: 就一句话, 字面意思看来return了一个view, compact是php的自带方法, 转换成User数组的数据到视图去渲染.
那, 啥时候去查询的数据库?
之所以问这个问题, 是因为, 这个User模型可能有一个一对多的关系, 比如replies, 用户所做的帖子的回复
public function replies()
{
return $this->hasMany(Reply::class);
}
而在controller里面不做任何事情, 到了View,
`@include('topics._reply_list', ['replies' => $topic->replies()->with('user')->get()])`
我的问题是, 难道是在视图渲染的过程中, 才开始去查询关联的一对多关系?这也太神奇了吧? 这要是以后写api是不是就不能这么弄了?
推荐文章: