我现在使用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如何生成这条路线,我发现该方法无法使用方法名生成路线。
答案 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';
}
}