2017-10-13 39 views
2

路線裏面我需要把一個URL中間的ID號來得到這樣的:用戶(編號)上Laravel

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/', '[email protected]')->name('something.edit'); 

有可能把一個(編號)在路線的name

回答

5

您可以使用route()幫手:

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

我需要把id放在路由中間,最後沒有問題。如果我這樣做,我會得到:'路線[http://myapp.com/something/edit?id=109]未定義'。我的路線需要像這樣'http:// myapp.com/something/109/edit' – pmirnd

+0

route()將添加ID而不是{{}}佔位符,而不僅僅是將它添加到URI的末尾。 –

+0

用''{id}'=> $ event-> data-> id])'工作......我想我有一個錯誤。謝謝隊友,這是我需要的。 – pmirnd

0

你不應該把一個id在路由名稱。我認爲這是不好的做法。 我建議你使用路由資源。

php artisan make:resource MyController -m Something 

這種方式,你可以REST風格的路線:

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

通過上面的圖案,您的編輯路線將/my/10/edit,你的數據將自動獲取。

這樣您就可以使用策略來確定當前正在更新的項目屬於登錄用戶。