【问题标题】:Laravel 5.2 blade route to resourceLaravel 5.2刀片资源路由
【发布时间】:2016-09-13 10:26:55
【问题描述】:

文档说:

如果命名路由定义了参数,你可以将参数传递为 路由函数的第二个参数。给定的参数将 自动插入到 URL 的正确位置:

Route::get('user/{id}/profile', ['as' => 'profile', function ($id) {
    //
}]);

$url = route('profile', ['id' => 1]);

如果我通过两次使用Route::resource(...) 确实有一个嵌套资源路由,我将获得一个包含占位符的命名路由

employees.{employee}.images.index

如何使用刀片模板引擎为这个嵌套资源创建路由?

我想过

route('employees.{employee}.images.index', ['employee' => $employee->id]);

但这不起作用。我知道我可以“手动”创建路线,但这会降低它们的可维护性。

更新 1 我知道我可以手动命名路线,然后使用给定的名称。但是,如果有一种不命名它们的方法,我会更喜欢它。

【问题讨论】:

    标签: laravel laravel-5.2 blade


    【解决方案1】:

    您不必将employee 之类的内容添加到路由名称中。运行php artisan route:list 命令,您将看到由resource 子句创建的所有路由的真实名称(查看名为Name 的列)。然后像往常一样使用它们:

    route('employees.images.index', ['employee' => $employee->id]);
    

    你也可以name resource routes。

    【讨论】:

    • 不,情况并非如此,如果您嵌套资源,这些占位符将由 laravel 插入。 employees.{employee}.images.index 是您提到的命令中的名称
    • 如果它不适合你,你可以命名资源控制器路由:laravel.com/docs/5.2/controllers#restful-naming-resource-routes
    • 是的,这是真的,我知道。我只是想知道是否有办法使用生成的路线,我应该把它添加到我的问题中
    猜你喜欢
    • 2016-12-24
    • 1970-01-01
    • 2016-09-21
    • 2017-03-01
    • 2014-01-05
    • 1970-01-01
    • 2019-07-30
    • 2016-10-21
    • 2018-07-25
    相关资源
    最近更新 更多