2 回答
TA贡献1827条经验 获得超4个赞
您的路线有两个变量 (event_id) 和 (booking_id),但您的方法只有一个 ($id) 使用您现有的路线(这不符合 eloquent 的工作方式)
网页.php
Route::delete('event/{event_id}/booking/{booking_id}', 'bookingController@destroy')->name('booking.destroy');
刀刃
action = "{{ route('booking.destroy', $event_id, $booking_id) }}"
控制器
public function destroy ($booking_id, $event_id)
您可能想在这里查看 laravel 关系: https ://laravel.com/docs/6.x/eloquent-relationships
会让你的生活更轻松,因此 eloquent 会传递一个实例,你的 destroy 方法看起来像这样
public function destroy (Booking $booking)
{
$event = $booking->event();
// Do something with related event
// or vice versa
}
TA贡献1828条经验 获得超4个赞
ID是两个独立的ID吗?还是他们共享相同的ID?
如果它们是两个独立的 ID,那么您需要给它们两个明确不同的名称,例如 booking_id 和 event_id,然后您就可以在 Controller 中随意访问它们。
Route::delete('event/{event_id}/booking/{booking_id}', 'bookingController@destroy');
然后在你的控制器中你可以做
public function destroy($event_id, $booking_id)
{
...
}
如果我没记错的话,控制器方法中的参数不需要与路由中的参数命名完全相同(尽管它会让你的生活更轻松)。参数是按顺序传递的,所以你可以这样做
//$A = event_id, $B = booking_id
public function destroy($A, $B)
{
...
}
- 2 回答
- 0 关注
- 143 浏览
添加回答
举报