Laravel View :: Make仅使用foreach循环的第一次迭代

时间:2014-10-21 00:53:45

标签: php laravel blade

使用laravel 4制作博客概念。当尝试使用动态内容加载视图数组时,框架似乎返回第一个每个渲染的视图,而不是使用新内容重新生成它。

我构建一个对View :: make with partials(Article / partials / article)和压缩数据数组(来自模型的文章)的调用数组

然后简单地循环并在另一个视图Home / blog

中回显
public function get_articles($total) {
        $article_result = 
            Article::orderBy('created_at', 'desc')
                    ->limit($total)
                    ->get();

        $article_data = array(
            'article' => array(),
        );

        foreach($article_result as $article) {
            var_dump($article->id);
            $article_data['article'][] = View::make('Article/partials/article', compact('article'));
        }

        return View::make('Home/blog', compact('article_data'));
    }

我的所有文章都在那里,因为这是从控制器循环中的var_dump打印出来的

int 6

int 5

int 4

int 3

int 1

5 五 五 五 五 五 五 五 五 5

1 个答案:

答案 0 :(得分:2)

只需将$ article_result传递到您的视图Home/blog,然后在视图中循环播放它们就会好得多。您可以在那里调用局部视图,并且在循环期间可以访问每个$article

因此,在您的控制器中,只需调用Home/blog视图:

public function get_articles($total) {
    $article_result = Article::orderBy('created_at', 'desc')
                ->limit($total)
                ->get();

    return View::make('Home/blog')->with(array(     
                'articles' => $article_result
                ));
}

...并在视图中循环播放文章。

@foreach($articles as $article)
    @include('Article/partials/article')
@endforeach

Article/partials/article内,只需参考$article即可完成所有设置。