我有路由页面和实现的问题。 当页面路由在实现之前,页面工作,实现不起作用。同样... 当实现路由是在页面路由之前,实现工作,页面不起作用。显示错误404。
我的路由页面:
Route::get('{page}/{subs?}', ['uses' => 'PagesController@getPage'])
->where(['page' => '^((?!admin).)*$', 'subs' => '.*']);
我的路由实现:
Route::group(['middleware' => ['web']], function () {
Route::get('realizacje/{slug}', 'PagesController@getRealization')
->where('slug', '[\w\d\-\_]+');
});
我的控制器PagesController:
public function getPage($slug){
$realizations = Realization::orderBy('id', 'desc')->get();
$page = Page::findBySlug($slug);
if (!$page)
{
abort(404, 'Please go back to our <a href="'.url('').'">homepage</a>.');
}
$this->data['title'] = $page->title;
$metatag = $page->extras;
$metatag = json_decode($metatag, true);
$this->data['page'] = $page->withFakes();
return view('pages.templates.'.$page->template, $this->data)
->with('metatag',$metatag)
->with('realizations',$realizations);
}
public function getRealization($slug){
$realization = Realization::where('slug', '=', $slug)->first();
$realizations = Realization::orderBy('id', 'desc')->get();
return view('pages.templates.'.$realization->template)
->with('realizations',$realizations);
}
答案 0 :(得分:2)
第一件事:我不知道Laravel。我在Symfony开发。
但也许它会有所帮助。
问题可能出在您的路径URIs定义中:
Route::get('{page}/{subs?}'...
Route::get('realizacje/{slug}'...
也许尝试修改这样的页面URI,这样路由器就不会匹配这两个动作:
Route::get('pages/{page}/{subs?}'...
Route::get('realizacje/{slug}'...
或尝试修改where()条件。