【问题标题】:User a {id} inside a route on Laravel在 Laravel 的路由中使用 {id}
【发布时间】:2018-03-25 19:04:52
【问题描述】:

我需要在 URL 中间放一个 id 号才能得到这个:

http://myapp.com/something/29/edit

现在,我有这个:

'user_link' => ['here.i.need.to.put.my.route.with.the.number]

我的号码来自$event->data->id,有没有办法在路由中间“连接”一个号码?类似的东西

'user_link' => ['something.{id}.edit]
'user_link' => ['something.'.$event->data->id .'.edit] <-- I I do that Laravel shows an error: Route [something.{107}.edit] not defined

有问题的路线是:

Route::get('something/{id}/edit/', 'MyController@edit')->name('something.edit');

可以在路由的name 中放置一个{id} 吗?

【问题讨论】:

    标签: php laravel routes blade


    【解决方案1】:

    您不应该在路由名称中添加id。在我看来,这是不好的做法。 我建议你使用路由资源。

    php artisan make:resource MyController -m Something
    

    这样,你就可以休息路线了:

    my/index
    my/create
    my/store
    my/{something}/edit
    my/{something}/update
    my/{something}/show
    my/{something}/destroy
    

    通过上述模式,您的编辑路线将是/my/10/edit,并且您的数据将被自动获取。

    这样,您可以使用策略来确定当前正在更新的项目属于登录用户。

    【讨论】:

      【解决方案2】:

      你可以使用route()助手:

      route('something.edit', ['id' => $event->data->id])
      

      【讨论】:

      • 我需要把id放在路线中间,最后没有问题。如果我这样做了,我会得到:Route [http://myapp.com/something/edit?id=109] not defined。我的路线需要是这样的http://myapp.com/something/109/edit
      • route() 将添加 ID 而不是 {id} 占位符,而不仅仅是将其添加到 URI 的末尾。
      • 使用'{id}'=&gt; $event-&gt;data-&gt;id]) 工作......我想我有一个错误。谢谢朋友,这正是我需要的。
      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 2013-07-15
      • 2016-05-10
      • 2021-08-09
      • 2015-03-06
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      相关资源
      最近更新 更多