【问题标题】:Laravel create link for prefix actionLaravel 为前缀操作创建链接
【发布时间】:2020-09-25 17:14:14
【问题描述】:

我有一个名为 admin 的前缀。我在管理文件夹中的所有控制器。

在路由中,我创建了如下带有命名空间的路由

Route::group(['namespace' => 'Admin', 'prefix' => 'admin'], function()
{
    Route::resource('/tags', 'TagsController');

});

现在我正在尝试在我的管理面板侧边栏中创建链接

<a href="{{ url('admin/tags') }}" title="bookmark">Tags</a>

在表格中我使用了如下示例的操作

<a href="{{action('Admin\TagsController@show',['tag'=>$tag->id])}}" >View</a>

我的问题是如何在不写 admin 的情况下创建两个链接?我有超过 100 个唯一链接,我想避免每次在链接中都写这个管理员 prefix

【问题讨论】:

    标签: laravel laravel-7


    【解决方案1】:

    您可以使用route() 辅助函数来生成url。

    /**
     * Generate the URL to a named route.
     *
     * @param  array|string  $name
     * @param  mixed  $parameters
     * @param  bool  $absolute
     * @return string
     */
    function route($name, $parameters = [], $absolute = true)
    {
        return app('url')->route($name, $parameters, $absolute);
    }
    

    您可以将您的前缀/资源路由命名为here 中所示的路由,然后在路由函数中使用它。

    Route::namespace('Admin')->prefix('admin')->name('admin.')->group(function () {
         Route::resource('/tags', 'TagsController');
    });
    

    请执行php artisan route:list命令查看路由命名是否正确。

    【讨论】:

    • 名义上为什么需要这个点?
    • @NiloyRony 这只是一个约定——(我分享的帖子很旧)——也许在较新版本的 laravel 中它不需要它,但会自动附加它。
    • 我在 7.x 版本中尝试过,没有点它不起作用。
    • @NiloyRony 如果您不带点,则名称不应在其后包含点 - 您可能需要清除路线并运行路线列表以查看其打印内容并使用视图文件中列出的内容
    猜你喜欢
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 2017-04-03
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 2015-06-15
    相关资源
    最近更新 更多