找不到Laravel自定义子路径404

时间:2019-12-29 10:22:37

标签: php laravel eloquent laravel-6

我为自己的网站制作了一个小型CMS。使用此CMS,您可以创建页面并向其中添加块。您还可以创建一个新页面并添加一个父页面。像这样...

  1. 创建一个名为“项目”的页面

  2. 创建一个名为“ Project 1”的页面,并将“ Projects”添加为父项 页面,使网址类似projects/project-1

  3. 创建一个名为“信息”的页面,并将“项目1”添加为父项 页面,使网址类似于projects/project-1/information 这个想法。

我已经使上面的部分起作用,但是每当我尝试使用show_pageedit_page路由访问视图时,都会显示404 Not Found。

路线

Route::get('/{url}', 'PageController@show')->name('show_page');
Route::get('/dashboard/pages', 'PageController@index')->name('pages');
Route::get('/dashboard/page/create', 'PageController@create')->name('create_page');
Route::post('/dashboard/page/store', 'PageController@store')->name('store_page');
Route::get('/dashboard/page/{url}/edit', 'PageController@edit')->name('edit_page');
Route::delete('/dashboard/page/{url}/delete', 'PageController@destroy')->name('delete_page');
Route::post('/dashboard/pages/order/{url}', 'PageController@changeOrder')->name('change_order');

控制器

我通过在控制器中执行以下操作来创建页面

public function store(Request $request)
{
    $identifier = str_replace(' ', '_', strtolower($request->name));
    if ($request->sub_page === 0) {
        $url = str_replace(' ', '-', strtolower($request->name));
    } else {
        $parent_page = Page::find($request->sub_page);
        $url = $parent_page->url.'/'.str_replace(' ', '-', strtolower($request->name));
    }

    $page = Page::create([
        'name' => $request->name,
        'identifier' => $identifier,
        'url' => $url,
        'status' => 1,
        'layout' => $request->layout,
        'page_id' => $request->sub_page,
        'created_at' => Carbon::now(),
        'updated_at' => Carbon::now()
    ]);

    return redirect('/dashboard/pages');
}

通过...创建视图

public function show($id)
{
    $page = Page::where('url', $id)->firstOrFail();
    $blocks = Block::where('page_id', $page->id)->where('status', 1)->get();

    return view('pages.show', compact('page', 'blocks'));
}

0 个答案:

没有答案