如何在一个控制器中使用多个模型

时间:2019-07-26 15:30:19

标签: laravel model controller

我有六个模型需要在控制器中放入一个实例。我该怎么办?

我有六个模型:

CommentaireCritique
CommentaireNews
CommentaireDossier
CommentaireEpisode
CommentaireSerie
CommentaireTrailer

它们在我的数据库中都具有相同的结构,我想在一页上显示最新的通讯。我不知道是否可以将它们绑定在单个控制器中。我试过了,但是没用。

public function index()
{
    $comms = CommentaireCritique::all() && CommentaireNews::all()
        && CommentaireDossier::all() && CommentaireEpisode::all()
        && CommentaireSerie::all() && CommentaireTrailer::all()
            ->get();

    return view('admin.commentaires.index', compact('comms'));
}

4 个答案:

答案 0 :(得分:0)

就在名称空间之后,在类声明之前

use yourAppNameSpace/modelName

答案 1 :(得分:0)

只要在上面正确地声明它们,就可以在控制器中实例化模型的数量没有限制。我认为您需要的是合并所有模型结果的方法,这样就可以了来使用merge method,否则可以请您澄清一下问题。

答案 2 :(得分:0)

是的,您可以在一个控制器上检索它们

您已经中途了,应该在不同的变量上分开

public function index()
{
    $comms = CommentaireCritique::all() 
    $news = CommentaireNews::all()
    $dossier = CommentaireDossier::all()  
    $episodes = CommentaireEpisode::all()
    $series = CommentaireSerie::all()  
    $trailers = CommentaireTrailer::all()


    return view('admin.commentaires.index', compact('comms','news','dossier','episodes','series','trailers'));
}

如果要将它们放在一个变量中,则可以使用集合docs

答案 3 :(得分:0)

Get-Command -Module NetSecurity get-help Get-NetFirewallRule -full 函数的所有结果将返回laravel集合。因此,请使用all()函数将所有这些链接到一个集合中

concat()