Laravel:需要解决foreach循环问题

时间:2015-04-14 22:26:25

标签: php html5 laravel laravel-4

我想要做的是基本上有一个“最新”的剧集节目,其中一个状态为“正在进行”的是我目前为止的代码。

我遇到的问题是,我似乎无法使剧集的foreach循环适用于该系列。与当前代码一样,它所做的是显示相同的变量。而我认为正在发生的是它为每个系列循环相同的查询,以便为每个系列弹出相同的变量。

有人可以帮助我吗?

剧集的链接方式也就是使用标题的title_id,因此在剧集的表格中,它们被'title_id'所喜欢,但我不知道在这个序列中该如何处理。

        <?php $titles = DB::table('titles')->whereNotNull('poster')->where('status', '=', 'ongoing')->orderBy('updated_at', 'desc')->limit(12)->get(); ?>
        @foreach ($titles as $title)

            <?php $episodes = DB::table('episodes')->orderBy('created_at', 'desc')->limit(1)->get(); ?>

            @foreach ($episodes as $episode)
            <figure class="col-lg-2 col-md-3 col-sm-4  pretty-figure">
                <div class="home-episode-number">
                    {{ $episode->episode_number }}
                </div>
                <div class="flip-containerw">
                    <div class="flipper">
                      <a href="{{ Helpers::episodeUrl($title->title, $episode->title_id, 'series', $episode->season_number, $episode->episode_number) }}"><img src="{{ $episode->poster ? $episode->poster : '/assets/images/noimageepisode.png' }}" alt="" class="img-responsive"></a>
                    </div>
                </div>
                <div class="home-anime-name">
                    <a href="{{ Helpers::episodeUrl($title->title, $episode->title_id, 'series', $episode->season_number, $episode->episode_number) }}" class="series-name-link"> {{ str_limit($title->title, 23, '...') }} </a>
                </div>
            </figure>
    @endforeach                 
@endforeach

1 个答案:

答案 0 :(得分:2)

您没有遵循一些基本的设计模式,例如模型 - 视图 - 控制器结构。

MVC

在您的视图中进行数据库调用并不是一种好习惯。您应该在模型内部或存储库中执行此操作。然后把它传给控制器。

如果你开始正确使用雄辩,你会避免很多头痛。

Eloquent

现在,回答你的问题:

如果您想在循环中获取标题的剧集,请尝试使用where:

$episodes = DB::table('episodes')->where('title_id,'=',$title->id)->orderBy('created_at', 'desc')->limit(1)->get();

该查询只会检索一集(限制(1))。