Laravel未定义变量(但它被发送)

时间:2018-05-28 12:06:00

标签: php mysql laravel-5

我的PostController

    $posts = Post::orderBy('created_at', 'desc')
                 ->where([['status', 'PUBLISHED'],['post_type', 'PORTFOLIO']])
                 ->paginate(9);

    $partners = Post::orderBy('created_at', 'desc')
                 ->where([['status', 'PUBLISHED'],['post_type', 'PARTNERS']])
                 ->get();
 //   return view('landing.onepageindex', ['posts' => $posts], ['pages' => $pages], ['partners' => $partners]);
    return view(
             'landing.onepageindex',
             ['posts' => $posts],
             ['pages' => $pages],
             ['partners' => $partners]
         );

我试图为合作伙伴var做一个foreach,但它说它未定义,我在这里做错了什么?我对Laravel很新,但这件事让我感到困惑。我不允许创建2个同一帖子的变量(只是不同的帖子类型)?

帖子和页面可以正常工作,合作伙伴不会。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您需要在第二个参数中传递数据才能查看

return view(
        'landing.onepageindex',
        ['posts' => $posts, 'pages' => $pages, 'partners' => $partners]
);

答案 1 :(得分:0)

你做错了。

内部视图功能,第一个参数是视图路径,第二个参数是我们在视图中传递的数据数组。

return view(
    'landing.onepageindex',
    ['posts' => $posts, 'pages' => $pages, 'partners' => $partners]
);

OR

return view(
    'landing.onepageindex',
    compact('posts','pages','partners')
);