为了账号安全,请及时绑定邮箱和手机立即绑定

管理员/仪表板定义路由未运行

管理员/仪表板定义路由未运行

PHP
慕少森 2021-11-13 14:53:59
两年后开始编程,从 zendframework2 切换到 laravel。我正在关注在早期版本的 Laravel 中制作的 youtube 教程。我在 web.php 中定义了一个简单的路由这给了我一个管理/仪表板的工作网址我一直在这个项目中使用它,直到我在我的 slider.blade.php 中使用它路由管理/仪表板适用于 Request::is 但不适用于 href 路由。我收到未定义管理/仪表板的错误。但它在 web.php 和 php artisan route:list 中定义为 admin/dashboard。我还尝试在 web.php 中的 Route::group 之外定义 admin/dashboard 并使用 admin.dashboard 但我无法摆脱这个。有可能网址:<li class="{{ Request::is('admin/dashboard*')? 'active':''}} ">    <a class="nav-link" href="{{route('admin/dashboard')}}"> <i class="material-icons">dashboard</i> <p>Dashboard</p> </a> </li>路线:Route::group(['middleware' => 'auth'], function () {     Route::get('dashboard', ['as' => 'dashboard', 'uses' => 'Admin\DashboardController@index'])->name('admin.dashboard'); });网页.php :    <?php    /*    |--------------------------------------------------------------------------    | Web Routes    |--------------------------------------------------------------------------    |    | Here is where you can register web routes for your application. These    | routes are loaded by the RouteServiceProvider within a group which    | contains the "web" middleware group. Now create something great!    |    */    Route::get('/', function () {        return view('welcome');    });    Auth::routes();    //beneath is the route that can work both for auth and non auth for admin/    Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {        Route::group(['middleware' => 'auth'], function () {            Route::get('dashboard', ['as' => 'dashboard', 'uses' => 'Admin\DashboardController@index'])->name('admin.dashboard');            Route::resource('slider', 'Admin\SliderController');        });    });
查看完整描述

3 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

使用


<a class="nav-link" href="/admin/dashboard"> 

只能解决您的路由问题,但不能解决它。


如果你按照上面的链接,它可以让你获得正确的视图,而 Laravel 不会抛出任何错误,那么你离解决路线问题又近了一步。这意味着存在具有该前端名称的路由。但是,根据我下面的解释,您会发现服务器端名称是admin.dashboardadmin.dashboard。


所以,让我们开始解决问题。


该as键不替代路线的名字,它结合了他们。因此,只使用其中一种方法 -内部路由定义中的as键或->name()方法。


我正在 Laravel 5.8 上用我自己的机器对此进行测试,并且可以确认您可以在代码中同时使用两者。但是,您的代码中路由的名称是 - admin.dashboardadmin.dashboard - 令人惊讶。


以下任一路由定义都可以解决问题:


//beneath is the route that can work both for auth and non auth for admin/

Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {


    Route::group(['middleware' => 'auth'], function () {


        Route::get('dashboard', ['as' => 'dashboard', 'uses' => 'Admin\DashboardController@index']);


        Route::resource('slider', 'Admin\SliderController');

    });


});

或者


//beneath is the route that can work both for auth and non auth for admin/

Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {


    Route::group(['middleware' => 'auth'], function () {


        Route::get('dashboard', ['uses' => 'Admin\DashboardController@index'])->name('dashboard');


        Route::resource('slider', 'Admin\SliderController');

    });


});

无论哪种方式,生成的前端链接都应该是


admin/dashboard

而访问链接的服务器端路由是


route('admin.dashboard')

html 应该是:


<li class="{{ Request::is('admin/dashboard*')? 'active':''}} ">

    <a class="nav-link" href="{{route('admin.dashboard')}}">

        <i class="material-icons">dashboard</i> 

        <p>Dashboard</p> 

    </a> 

</li>

注意:不要通过将生成的路由链接直接放入浏览器地址栏来测试它们。将它们放在一个链接中href,浏览器将绝对或相对地解析它们 - 取决于链接类型。


查看完整回答
反对 回复 2021-11-13
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

你必须在 Laravel 中的内部链接的“href”中的路由之前添加一个“/”。基本上你不需要在“href”中调用“route”方法,因为 Laravel 会自动确定它是哪条路由。尝试这个:

<a class="nav-link" href="/admin/dashboard">


查看完整回答
反对 回复 2021-11-13
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

路由助手接受路由的名称,试试这个:

href="{{ route('admin.dashboard') }}

https://laravel.com/docs/5.8/helpers#method-route


查看完整回答
反对 回复 2021-11-13
  • 3 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信