2016-03-18 38 views
0

我設置了一個新的laravel安裝,並且在使用uuid作爲id時出現隱式路由模型綁定的問題。Laravel 5.2使用uuid字符串作爲id的隱式路由模型綁定

我的路線:

Route:group(['prefix' => 'admin'], function(){ 
    Route:resource('users', 'Admin\UserController'); 
}); 

聯繫\ UserController中的顯示方法:

public function show(App\User $user) { 
    dd($user); 
} 

所以,當我打的網址my.app/admin/users/long-uuid-string-here我希望看到的用戶信息,但我得到一個空的用戶目的。

當我添加下面的RouteServiceProvider,它按預期工作:

$router->model('admin/users', \App\User::class);

有我丟失的東西,不隱式模型結合期望的整數?是因爲它在路線組還是別的什麼?

是的!在數據庫中存在的ID,而我使用laravel 5.2

回答

0

由於您使用的資源路由,路由會像:

注意{users}變量。這是複數。因此,在你的表演方法:

改變這一點:

public function show(App\User $user) { 
    dd($user); 
} 

public function show(App\User $users) { 
    dd($users); 
} 

這是一個有點怪異,但多數民衆贊成這個問題。

+0

我在id列中使用了uuid –

+0

你在哪裏註冊了'$ router-> model()'方法? –

+0

在RouteServiceProvider的啓動方法中。如果我以這種方式明確地聲明它,它就會起作用,我想知道爲什麼它沒有隱含地工作。按照你的推理,我想這肯定是與它在前綴組中的事實有關? –

相關問題