簡體   English   中英

Laravel 4,數據庫中是否存在路由參數檢查

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM