【问题标题】:Laravel named routing | Auto generating urls to best possible matchLaravel 命名路由 |自动生成 url 以实现最佳匹配
【发布时间】:2023-03-03 17:36:01
【问题描述】:

我正在尝试命名我的路线,这样我就可以轻松地生成 url,而不是使用我必须自己输入的 url 辅助函数。

我正在这样做:

Route::get('logout', 'PageController@logout')->name('pc');

当我执行 php artisan route:list 时,我没有得到这个命名路由,而是 name 列是空的。

我想要的是,我通过这个控制器定位的任何视图。我想像这样生成他们的网址。

route('pc.logout') OR route('pc.some_other_action')

因此,即使我更改动词以从 URL 地址访问此控制器,我也不必更改我的 url 生成器。这在 Laravel 中是否可行?还请说明如何为资源路由执行此操作。

我正在使用 Laravel 5.3。

谢谢。

编辑:第二天 2017 年 1 月 11 日

我期待的是,就像 ASP.NET MVC 路由一样,如果我告诉它生成一个带有给定控制器和操作的 url,它会生成可能的路由到它,而不管用于命名路由的动词或字符串。

例如

如果我做一个这样的网址

route('users.index')

输出/users

但是如果我将字符串名称用户更改为 u,而不是给我错误名称“用户”不存在,它应该自动生成这样的 url 输出:

输出:/u

这是 ASP.NET MVC 路由系统的一部分,我希望在这里也能看到。

【问题讨论】:

  • Route::get('logout',array('uses'=>'PageController@logout','as'=>'pc'));试试这样。

标签: php laravel


【解决方案1】:

你应该写这个这将解决你的问题

Route::get('logout', array('as' =>'pc.logout' ,'uses' => 'PageController@logout'));

这可能会解决您的问题

【讨论】:

  • 更新了我的问题
【解决方案2】:
name('pc.logout') OR name('pc.some_other_action')

你可以试试这个。

使用起来要简单得多:

Route::get('logout', 'PageController@logout')->name('pc.logout');

或者像这样:

Route::get('logout', 'PageController@logout')->name('pc.some_other_action');

如果这是错误的,你能进一步解释一下吗?

【讨论】:

    【解决方案3】:

    你可以这样定义命名路由

    Route::get('/logout',[                       
    
    'uses'=>'web\PageController@logout',   
    
    'as'=>'pc'                     
    

    ]);

    【讨论】:

      【解决方案4】:

      试试这个:

      <?php
      Route::get('logout',[
          'uses'=>'PageController@logout',
          'as'=>'pc.logout'                     
      ]);
      

      【讨论】:

        猜你喜欢
        • 2017-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-08
        • 1970-01-01
        • 1970-01-01
        • 2016-11-03
        • 1970-01-01
        相关资源
        最近更新 更多