检查是否没有具有该 ID 的记录

Checking if there is not record with that id

我刚刚开始了解 laravel,我想利用这个框架的优势。我问这个问题是为了通过 laravel.

学习正确的方法

它正在打印 post 来自 post 的 table,它与 $id 具有相同的 id。

<?php
    class PostsController extends BaseController{

        public function singlePost($id)
        {
            $thePost = Posts::find($id);
            return View::make('singlePost')->with('thePost', $thePost);
        }

    }

通常我会检查是否有一个 post 的 id 等于 $id,如果是,return 查看等等。有没有更好的方法可以像使用路由过滤器那样使用 laravel 来做到这一点。

很快,

请参阅文档中的 "Route Model Binding"

Route::model('post', 'Post', function() {
    // do something if Post is not found
    throw new NotFoundHttpException;
});

Route::get('post/{post}', function(Post $post) {
    return View::make('singlePost')->with('thePost', $post);
});

您也可以在您的代码中将 find() 替换为 findOrFail(),这将抛出异常 post wasnot found with that ID。

路由模型绑定可能是一种选择,但更通用的解决方案是 findOrFail
findOrFail 将 return 模型或抛出 ModelNotFoundException 将显示为 404 页面。

$thePost = Posts::findOrFail($id);
return View::make('singlePost')->with('thePost', $thePost);

要检查是否存在,您可以使用 find 然后与 null 进行比较:

$thePost = Posts::find($id);
if($thePost != null){
    // post exists
}

或者更简单,只是一个真实值:

$thePost = Posts::find($id);
if($thePost){
    // post exists
}