Laravel Route-检查ID是否不存在并显示404

rai*_*son 2 laravel laravel-routing

如果ID不存在,我不想显示该页面。

如何在Laravel的web.php路由中检查此问题?

我目前有以下路线:

Route::get('/public/{project_id}', 'ProjectController@public');
Run Code Online (Sandbox Code Playgroud)

如何进行条件检查以查看project_id是否存在?

我在路由文档中看到Route :: bind有一个选项-这是一个解决方案吗?谢谢

更新说明:由于绑定似乎已经引入到路由类中,因此与Laravel 4方法略有不同。

Pat*_*cke 5

您要使用的称为路由模型绑定。Laravel开箱即用。如果该ID不在数据库中,则显示404页。但是,您需要更改路线:

假设您的Model被调用Project,路由应如下所示:

Route::get('/public/{project}', 'ProjectController@public');
Run Code Online (Sandbox Code Playgroud)

ProjectController应该看起来像这样:

public function public(Project $project) {
Run Code Online (Sandbox Code Playgroud)

这样,Laravel会使用您提供的ID自动解析项目,并将其注入$project变量中。如果不存在具有ID的记录,则laravel重定向到404