在laravel中路由 - 错误404

时间:2017-08-10 11:18:58

标签: php laravel laravel-5 controller routing

我有路由页面和实现的问题。 当页面路由在实现之前,页面工作,实现不起作用。同样... 当实现路由是在页面路由之前,实现工作,页面不起作用。显示错误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);

}

1 个答案:

答案 0 :(得分:2)

第一件事:我不知道Laravel。我在Symfony开发。

但也许它会有所帮助。

问题可能出在您的路径URIs定义中:

Route::get('{page}/{subs?}'...

Route::get('realizacje/{slug}'...

也许尝试修改这样的页面URI,这样路由器就不会匹配这两个动作:

Route::get('pages/{page}/{subs?}'...
Route::get('realizacje/{slug}'...

或尝试修改where()条件。