有没有办法在@foreach视图中显示我数据库中的最后一项?

时间:2019-05-27 18:56:20

标签: laravel

有没有一种方法可以显示通过@foreach将我的数据库中添加的最后一项显示到我的家中?

@foreach(App\Models\Post::orderBy('created_at','DESC')->get() as $post)
                                    <div class="fs-rp-item">
                                        <div class="entry-image">
                                            <!--<a href="#"><img src="/holy/images/blog/fs-thumb.jpg" alt="recent post"></a>-->
                                            <a href="#"><img src="/uploads/post/{{$post->id}}/image/{{$post->file_1}}" alt="recent post"></a>
                                        </div>
                                        <div class="entry-rp">
                                            <h4>
                                                <a href="#">{{$post->title}}</a>
                                            </h4>
                                            <p class="read-more">
                                                <a href="#">read the article</a>
                                            </p>
                                        </div>
                                    </div>
                                    @endforeach

2 个答案:

答案 0 :(得分:1)

我不太明白你的问题。对我来说,遍历循环以仅显示最后一项是没有意义的。

无论如何,这是这样做的方法:

@foreach(App\Models\Post::orderBy('created_at','DESC')->get() as $post)
     @if($loop->last)
         // the end of the loop is reached at this point
     @endif
@endforeach

更好的方法是从控制器中的帖子中获取最新项目,并将其传递给视图,然后仅打印其数据:

use App\Models\Post; // at the top of your class

// your controller
public function index()
{
    $post = Post::latest()->first();
    return view('index', compact('post'));
}

然后在视图中,您只使用最新的帖子,例如:

<h4>
    <a href="#">{{$post->title}}</a>
</h4>

答案 1 :(得分:0)

尝试一下

App\Models\Post::orderBy('created_at','DESC')->first()