BadMethodCallException 方法 App\Http\Controllers\TicketsController::route 不存在

BadMethodCallException Method App\Http\Controllers\TicketsController::route does not exist

我正在尝试使用票证控制器中的存储功能存储票证

// Create Ticket


 $ticket=new Ticket;
  $ticket->userName= $request->input('userName');
  $ticket->userEmail= $request->input('userEmail');
  $ticket->phoneNumber= $request->input('phoneNumber');
  $ticket->regular_quantity= $request->input('regular_quantity');
  $ticket->vip_quantity= $request->input('vip_quantity');
  $ticket->event_id = $this->route('id');
  $ticket->save();

  return redirect('/');
}

这是路线

Route::post('ticketstore', 'TicketsController@store')->name('ticketstore');

表格动作

<form action="{{route('ticketstore')}}" method="POST">
            @csrf

我收到那个错误

所以改变这个

 $this->route('id');

 $request->route('id');

在 FormRequest 中调用它。

--- 编辑

现在您正在尝试通过请求获取事件的 ID,但您没有传递它:

Route::post('ticketstore/{event}', 'TicketsController@store')->name('ticketstore');

那么在你的路线中你应该通过事件:

{{route('ticketstore', $event)}}

您可以使用 $request->route('event') 或在方法签名中获取它,如下所示:

public function store(Request $request, Event $event)
{
    ...
    $ticket->event_id = $event->id;
    ...
}

或者,如果您的视图中有一个包含事件的下拉列表,只需从请求中获取事件 ID $request->event_id;