2016-03-26 5 views
2

Я использую laravel 5.2 сейчас. у меня есть эти коды в моем routes.php файле:laravel5 генерировать маршруты ключ

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

и Laravel генерирует некоторый маршрутизатор для моего приложения:

GET/приборную панель/My-статьи App \ 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 должна отображаться в сегментах URL с использованием столбца id. Но что, если вы ожидаете, что он всегда будет отображаться на слизню?

Eloquent реализует контракт Illuminate \ Contracts \ Routing \ UrlRoutable, что означает, что каждый объект Eloquent имеет метод getRouteKeyName(), который определяет, какой столбец следует использовать для поиска из URL. По умолчанию этот параметр установлен на идентификатор, но вы можете переопределить, что на любой красноречивый модели:

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

thanks.but я нашел есть метод «загрузки» в классе RouteServiceProvider, когда я добавить даного: $ router-> модель ('один', 'App \ Статьи'); в этот метод. i получит объект модели App \ Articles в мою функцию «public function getMyArticles ($ Articles)», но метод «Route :: (['dashboard' => 'DashboardArticelController',]); такие как: GET/dashboard/my-articles/{one?}/{tow?}/... как я могу изменить ключ {one?} на {articles?}. Потому что я хочу сгенерировать другие маршруты с помощью Route :: контроллеры ([]). Они оба генерируют маршруты с помощью «path/{one?}/{two?}/...» – vaxilicaihouxian

+0

вам необходимо привязать модель неявного маршрута, ссылаясь на эту статью https://mattstauffer.co/ blog/implicit-model-binding-in-laravel-5-2. Вы получите лучшую идею. –

Смежные вопросы