Laravel 5 отправил форму для индексации, используя также ресурсный маршрут

Редактировать:

Я пытаюсь сделать что-то простое. На мои встречи.Индекс просмотра у меня есть форма. После отправки формы я хочу использовать значения в моем запросе, например, так:

AppointmentsController:

public function index(Request $request)
{
$statusId = $request->status;
$labelId = $request->label;
$monthId = $request->month;

$appointments = Appointment::status($statusId)->label($labelId)->month($monthId)->get();

return view('appointments', compact('appointments'));
}

Один из методов в моей модели (все они похожи):

public function scopeStatus($query, $statusId)
{
if($statusId)
{
return $query->where('status_id', '=', $statusId);
}
else {
return false;
}
}

Каков наилучший способ сделать это, если не для решения ниже?

OP:

Я получаю следующую ошибку:

Метод App \ Http \ Controllers \ AppointmentsController :: store () не существует

Я знаю, что это из-за моих маршрутов:

Route::get('appointments', array('as' => 'appointments', 'uses' => 'AppointmentsController@index'));
Route::post('appointments', array('uses' => 'AppointmentsController@index'));
Route::resource('appointments', 'AppointmentsController');

Если я изменю маршрут сообщения следующим образом, он будет работать:

Route::post('appointments/anythinghere', array('uses' => 'AppointmentsController@index'));

Вопрос в том, почему это (из-за маршрута ресурса, я понимаю, но почему) и как я могу «исправить» его, чтобы я все еще мог использовать свои маршруты, как указано выше?

1

Решение

Маршрут ресурса создает действие магазина в вашем контроллере. Вы можете указать подмножество действий для регресса.

В вашем случае попробуйте это

Route::resource('appointments', 'AppointmentsController',
['except' => ['store']]);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]