假設一下,想象一下 Laravel 7.x 應用程序中的這條人為路線:Route::get('/profile/{username}', function ($username) { /* code here */})->name('profile.username');{username}我的目標是來自數據庫的唯一允許值。假設有一個users包含列的表name,并且level只有那些帶有levelof的用戶名>5才應該顯示允許此路由發生。否則,我們會收到 HTTP 404。Laravel 中有特定的方法可以實現此功能嗎?
1 回答

白衣非少年
TA貢獻1155條經驗 獲得超0個贊
這是顯式路由模型綁定的絕佳候選者;取決于您想要如何配置它。
該文檔涵蓋了如何實現這一點;https://laravel.com/docs/7.x/routing#route-model-binding。
或者,中間件也可以工作 - EnsureUsernameExists
:
public function handle($request, Closure $next)
{
$username = $this->route('username');
User::where('username', $username)->where('level', '>', 5)->firstOrFail();
// Or with abort
abort_unless(User::where('username', $username)->where('level', '>', 5)->exists(), 404);
}
或者,您可以使用中間件內部的任一方法在控制器方法內運行檢查。
- 1 回答
- 0 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消