在 Laravel 的路线内使用 {id}

User a {id} inside a route on Laravel

我需要在 URL 中间输入一个 ID 号码才能得到这个:

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

现在,我有这个:

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

我的号码来自$event->data->id,有没有办法在路由中间"concatenate"一个号码?像

'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} 吗?

您可以使用 route() 助手:

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

您不应该在路线名称中加入 id。我认为这是不好的做法。 我建议你使用路由资源。

php artisan make:resource MyController -m Something

这样,您可以restful 路线:

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

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

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