我需要通过子活动ID中的ID删除预订
Route::delete('event/{id}/booking/{id}', 'bookingController@destroy');
我的控制器
public function destroy($id)
{
booking::destroy($booking->id);
return redirect('event')->with('flash_message', 'ลบข้อมูลการสำรองที่นั่งเรียบร้อย');
}
方法删除中的我
<form method="POST" action="{{ url('event/' . $event->id .'/booking/' . $booking->id) }}" accept-charset="UTF-8" style="display:inline">
{{ method_field('DELETE') }}
{{ csrf_field() }}
<button type="submit" class="btn btn-danger btn-sm" title="Delete event" onclick="return confirm("Confirm delete?")"><i class="fa fa-trash-o" aria-hidden="true"></i>ยกเลิกการจอง</button>
</form>
答案 0 :(得分:0)
您的路线有两个变量(event_id)和(booking_id),但是您的方法只有一个($ id) 使用您现有的路线(不遵循雄辩的工作方式)
web.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
将使您的生活更加轻松,因此雄辩的说法将通过一个实例,并且您的destroy方法将如下所示
public function destroy (Booking $booking)
{
$event = $booking->event();
// Do something with related event
// or vice versa
}
答案 1 :(得分:0)
这些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)
{
...
}