检查是否没有具有该 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 来做到这一点。
很快,
- 如何知道是否有 post 具有该 ID?
- 没有怎么抛异常?
- ...
请参阅文档中的 "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
}
我刚刚开始了解 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 来做到这一点。
很快,
- 如何知道是否有 post 具有该 ID?
- 没有怎么抛异常?
- ...
请参阅文档中的 "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
}