我有2個型號:Post
和User
其中每個Post
有一個User
和每個User
有許多Post
s。Laravel關係 - 有多個*不必要*數據庫調用嗎?
user.php的:
// User.php
public function posts()
{
return $this->hasMany(Post::class);
}
post.php中:
// Post.php
public function user()
{
return $this->hasOne(User::class);
}
我通過我的PostsController
加載一個帖子:
// PostsController.php
public function show($id)
{
$post = Post::find($id);
return view('posts.show', compact('post'));
}
在視圖中,我做出兩個呼叫我在和中加載的帖子給與帖子相關的用戶。我多次調用用戶對象:
// views/posts/show.blade.php
<h1>{{ $post->title }}</h1>
<p>{{ $post->user->name }}</p>
<p>{{ $post->user->email }}</p>
將這些2個來電來$post->user
資源使2個調用數據庫?
如何在後端雄辯關係的工作?請問關係總是返回整個user
對象時,我得到了post
對象,或者它懶洋洋地得到user
數據?
我關心與收費標準及依據從數據庫(GCP)傳送的數據,我不明白雄辯的關係將如何調用數據庫提供商託管我的數據庫。
[來自文檔](https://laravel.com/docs/5.5/eloquent-relationships#relationship-methods-vs-dynamic-properties):動態屬性是「延遲加載」,這意味着它們只會加載它們的關係數據當你真正訪問他們 – ljubadr
它將爲'$後> user' – ljubadr
我覺得這個問題太寬泛只運行一次。你所要求的內容在文檔和源代碼中都有涉及。 – fubar