2016-03-26 176 views
2

我現在使用laravel 5.2。 我有這些代碼在我的routes.php文件文件:laravel5生成路由密鑰

Route::(['dashboard'=>'DashboardArticelController',]); 

和laravel生成我的應用程序的一些路由器:

GET /儀表板/我-文章軟件\ HTTP \控制器\ DashboardArticelController @ getMyArticles

這裏是我的控制器的方法:

public function getMyArticles() 
{ 
    //$articels = Auth::user()->articals()->latest('published_at')->get(); 
    //dd(Auth::user()->articals()->latest('published_at')->simplePaginate(3)); 
    $articels = Auth::user()->articals()->latest('published_at')->Paginate(5);  
    return view('dashboard.view.dashboardArticelEdit',compact('articels')); 
} 

我不知道該怎麼laravel5產生這條路,我無法找到該方法可以GE用方法名稱填充路線。

回答

0

默認情況下,Laravel假定Eloquent模型應該使用其id列映射到URL片段。但是如果你期望它總是映射到一個slu what子?

Eloquent實現了Illuminate \ Contracts \ Routing \ UrlRoutable協議,這意味着每個Eloquent對象都有一個getRouteKeyName()方法,該方法定義應使用哪個列從URL中查找它。默認情況下,這是設置爲ID,但是你可以重寫任何雄辯型號:

class Test extends Model 
{ 
    public function getRouteKeyName() 
    { 
     return 'slug'; 
    } 
} 
+0

thanks.but我發現有類RouteServiceProvider的方法「啓動」,當我添加此statment:$路由器 - >模型( '一', '應用程序\文章');進入該方法.i將獲取模型對象App \ Articles到我的方法'public function getMyArticles($ Articles)',但方法'Route ::(['dashboard'=>'DashboardArticelController',]);'generate some路線如:GET/dashboard/my-articles/{one?}/{tow?}/...如何將鑰匙{one?}更改爲{articles?}。因爲我想用Route生成其他路線:: controllers([])。它們都會生成路徑爲'path/{one?}/{two?}/...' – vaxilicaihouxian

+0

您需要綁定隱式路由模型參考本文https://mattstauffer.co/博客/ implicit-model-binding-in-laravel-5-2。你會變得更好的主意。 –