[英]Laravel 4, Check of route parameter exist in database
我想檢查route參數是否存在於名為categories
的數據庫表中,該表中有兩列:
------------------
| categories |
------------------
| id | integer |
| name | varchar |
------------------
我現在也有一條路線:
Route::Get('shop/{cat}', function($cat)
{
return View::make('products')->with('cat', $cat);
});
是否有一個laravel函數可以檢查表中是否存在類別ID $cat
?
如果不存在,我想重定向到路線homepage
。 其他我要退貨查看: products
謝謝!
就在這里。 這稱為路由模型綁定 。
簡而言之,您可以使用Route::bind
函數定義在評估路由參數時要調用的函數。 這是一個簡單的示例:
Route::bind('cat', function($value, $route)
{
return Category::where('id', $value)->first();
});
然后,您的處理程序將被傳遞給模型本身,而不是傳遞給route參數,這非常方便。
您可以添加簡單的邏輯來測試所請求的模型是否存在,然后采取適當的措施。 常見的方法是在這種情況下拋出NotFoundException
,並使用App::missing
方法進行處理。 有關此主題的更多信息,請參見此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.