laravel5生成路由密钥

时间:2016-03-26 05:18:14

标签: php laravel-5.2

我现在使用laravel 5.2。 我在routes.php文件中有这些代码:

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

并且laravel为我的应用生成一些路由器:

GET / dashboard / my-articles App \ Http \ Controllers \ 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如何生成这条路线,我发现该方法无法使用方法名生成路线。

1 个答案:

答案 0 :(得分:0)

默认情况下,Laravel假定Eloquent模型应使用其id列映射到URL段。但是如果你期望它总是映射到slug怎么办?

Eloquent实现了Illuminate \ Contracts \ Routing \ UrlRoutable契约,这意味着每个Eloquent对象都有一个getRouteKeyName()方法,它定义了应该使用哪个列从URL查找它。默认情况下,它设置为id,但您可以在任何Eloquent模型上覆盖它:

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