Laravel: REJECT ROUTE не определен, но существует в web.php - PullRequest
2 голосов
/ 21 апреля 2019

В контроллере Календаря есть функция отклонения, но всякий раз, когда я перенаправляю на страницу просмотра, появляется сообщение о том, что мой маршрут не определен.

Я пытался переставить и переименовать свой маршрут, но он все еще отображает ошибку.

Вот моя форма:

{!! Form::open(['url' => route('therapist.reject.appointment', $bookingRequest), 'method' => 'delete', 'onsubmit' => 'javascript:return confirm("Are you sure?")']) !!}
                                <button type="submit" class="btn btn-warning btn-block">Reject this appointment</button>
                                {{csrf_field()}}
                            {!! Form::close() !!}

Вот мои маршруты. Другие отображаемые маршруты работают отлично:

Route::get('therapist-calendar/{bookingRequest}', 'TherapistCalander')->name('therapist.calendar');

    Route::post('therapist-calendar/{bookingRequest}',
        'TherapistCalander@saveAppointment')->name('therapist.book.appointment');

    Route::patch('therapist-calendar/{bookingRequest}', 
        'TherapistCalander@finishedAppointment')->name('therapist.finish.appointment');

    Route::delete('therapist-calendar/{bookingRequest}',
    'TherapistCalander@rejectAppointment')->name('therapist.reject.appointment');

    Route::delete('therapist-calendar/{bookingRequest}', 
        'TherapistCalander@cancelAppointment')->name('therapist.cancel.appointment');

И, наконец, моя функция:

public function rejectAppointment(Request $request, BookingRequest $bookingRequest)
    {
        $bookingRequest->reject();

        return redirect()->back()->with('rejectStatus', true);
    }

Страница просмотра, которой принадлежит эта кнопка, должна иметь возможность отображать кнопки отклонения и завершения наряду с представлением календаря.

EDIT Следующий вопрос: возможно ли это потому, что маршруты похожи друг на друга? Если да, то как мне это исправить?

Ответы [ 3 ]

2 голосов
/ 21 апреля 2019

Попробуйте изменить строку «Отклонить и отменить», потому что она похожа.

Route::delete(
    'therapist-calendar/{bookingRequest}/delete',
    'TherapistCalander@rejectAppointment'
)->name('therapist.reject.appointment');

Route::delete(
    'therapist-calendar/{bookingRequest}', 
    'TherapistCalander@cancelAppointment'
)->name('therapist.cancel.appointment');
0 голосов
/ 21 апреля 2019

UPDATE

ИСПРАВЛЕНО ПРОБЛЕМА

Я понял, так как они имеют похожие ссылки, web.php нашел его запутанным, поэтому он не прочитал этот маршрут.

Вот почему я изменил свой маршрут с:

  Route::delete('therapist-calendar/{bookingRequest}',
'TherapistCalander@rejectAppointment')->name('therapist.reject.appointment');

К этому:

Route::delete('doReject/{bookingRequest}',
    'TherapistCalander@rejectAppointment')->name('therapist.reject.appointment');
0 голосов
/ 21 апреля 2019

Измените свой код на

    {!! Form::open(['url' => route('therapist.reject.appointment', ['bookingRequest' => $bookingRequest]), 'method' => 'delete', 'onsubmit' => 'javascript:return confirm("Are you sure?")']) !!}
      {{csrf_field()}}
      <button type="submit" class="btn btn-warning btn-block">Reject this appointment</button>
   {!! Form::close() !!}

Параметры маршрута передаются в виде массива, и это должно работать нормально. См. Документ

Можете ли вы попробовать этот код

<form action="{{ route('therapist.reject.appointment', ['bookingRequest' => $bookingRequest]) }}" method="POST">
    @method('DELETE')
    @csrf
    <button type="submit" class="btn btn-warning btn-block">Reject this appointment</button>
</form>
...