小编Syc*_*one的帖子

检查模型是否存在,如果在 Laravel 中没有找到则继续路由

我有两个模型,我不想在其 URL 前面有前缀。例如用户和帖子

如果我有一个 URL https://example.com/title-of-the-posthttps://example.com/username

我将在web.php路由文件中做这样的事情:

// User
Route::get('{slug}', function ($slug) {
    $user = User::whereSlug($slug)->get();
    return view('users.show', $user);
});

// Post
Route::get('{slug}', function ($slug) {
    $post = Post::whereSlug($slug)->get();
    return view('posts.show', $user);
});
Run Code Online (Sandbox Code Playgroud)

现在我面临的问题是,输入了第一条路线并且永远不会到达第二条路线,即使没有具有匹配 slug 的模型。

如果$user找不到,如何退出到下一条路线(邮政)?

注意:我尝试了许多不同的退出策略,但似乎都没有奏效。

return;
return false;
return null;
// and return nothing
Run Code Online (Sandbox Code Playgroud)

提前致谢!

更新

另一个问题是,如果我有其他resource路线,它们也会被第一条路线挡住。

例如,如果我有Route::resource('cars', 'CarController')它生成一个/cars匹配 {slug}的路径,并且也被第一个用户路由阻止。

php routes laravel

2
推荐指数
1
解决办法
1956
查看次数

标签 统计

laravel ×1

php ×1

routes ×1