簡體   English   中英

我可以針對我的具體情況使用Laravel雄辯的hasManyThrough關系嗎?

[英]Can I use Laravel's eloquent hasManyThrough relationship for my specific case?

我正在嘗試從與我當前使用的模型沒有直接關系的表中檢索數據。

我的數據結構:

表: 帖子

  • id-整數
  • 標題-字符串

表: post_stacks

  • id-整數
  • post_id-整數
  • stack_id-整數

表: 堆棧

  • id-整數
  • 身體-弦
  • url-字符串

我雄辯的模型來自Post.php(posts表),而我正嘗試獲取與我的帖子相關聯的所有堆棧(來自stacks表)。 我只想在Post.php而不是我的數據透視表(post_stacks)上聲明我的關系。 我嘗試使用hasManyThrough,但無法正常工作嗎?

public function img()
    {
        return $this->hasManyThrough(\App\Stack::class, \App\PostStack::class, 'post_id', 'stack_id', 'id');
    }

有誰知道我如何檢索我想要的數據? 謝謝!

您可以嘗試在帖子模型中放置以下關系嗎?

public function stacks()
{
    return $this->hasManyThrough(
        'App\Stacks', 'App\PostStacks',
        'post_id', 'id', 'id'
    );
}

也可以看看這個, https://laravel.com/docs/5.4/eloquent-relationships#has-many-through

根據該文檔, hasManyThrough的第三個參數是中間模型上外鍵的名稱。 在我們的例子中, 'post_id'post_stack上與posts直接相關的外鍵。

第四個參數是最終模型上的外鍵名稱。 即,在stacks上的'id' post_stacks ( 'post_id' )有關系的。 第五個參數是本地密鑰。 即帖子id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM