Laravel命名为routing自动生成网址以尽可能匹配

时间:2017-01-10 05:24:47

标签: php laravel

我正在尝试命名我的路线,这样我就可以轻松生成网址,而不是使用我必须自己键入的网址助手功能。

我这样做:

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

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

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

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

因此,即使我更改动词以从URL地址访问此控制器,我也不必更改我的URL生成器。这在Laravel甚至可能吗?还请告诉如何为资源路由执行此操作。

我使用的是Laravel 5.3。

感谢。

编辑:第二天1/11/2017

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

例如

如果我像这样制作一个网址

route('users.index')

输出 / users

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

输出: / u

这是ASP.NET MVC路由系统的一部分,我期待在这里看到这一点。

4 个答案:

答案 0 :(得分:1)

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

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

这可能会解决您的问题

答案 1 :(得分:0)

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');

如果这是错误的,你可以进一步解释。

答案 2 :(得分:0)

您可以将命名路线定义为此

Route::get('/logout',[                       

'uses'=>'web\PageController@logout',   

'as'=>'pc'                     

]);

答案 3 :(得分:0)

试试这个:

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