Laravel Form Post на неправильный маршрут

С моим приложением у меня есть вид заказов с формой поиска, как показано ниже

@include('inc.header')

@yield('content')

<form class="needs-validation" method="post" action="{{url('/wapp/orders/search')}}">
@csrf
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-primary" type="submit">Search</button>
</div>
<input type="text" class="form-control" placeholder=" Search By Order ID" name="oid">
</div>
</form><br>

Функция поиска OrderController:

public function search(Request $request)
{
$order = DB::table('orders')
->join('users as a','a.uid', '=','orders.sender_uid')
->join('users as b','b.uid', '=','orders.receiver_uid')
->select('orders.oid','orders.price','orders.status','a.name as sender','b.name as receiver')
->where('oid','=' , $request->oid)
->first();

if($order){
return view('pages.search')->with('order',$order);
}else{
return back()->with('error','Order Not Found');

}

}

Который успешно находит заказ по идентификатору и отображает его результаты с таблицей в окне поиска.

Я также включил ту же форму поиска в окно поиска на случай, если пользователь захочет найти больше заказов,

@include('inc.header')

@yield('content')


<form class="needs-validation" method="post" action="{{url('/wapp/orders/search')}}">
@csrf
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-primary" type="submit">Search</button>
</div>
<input type="text" class="form-control" placeholder=" Search By Order ID" name="oid">
</div>
</form><br>


@if ($order)


<table class="table">
<thead class="thead-dark">
<tr>
<th scope="col">Price</th>
<th scope="col">OID</th>
<th scope="col">Name</th>
<th scope="col">Province</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>


<tr>
<td class="bg-success">{{$order->price}}</td>
<td>{{$order->oid}}</td>
<td>{{$order->sender}}</td>
<td>{{$order->receiver}}</td>
<td><a class="btn btn-primary" href="{{url('wapp/orders/'.$order->oid)}}" role="button">Link</a></td>
</tr>


</tbody>
</table><br>

@endif






@include('inc.footer')

а это мои маршруты

Route::group(
[
'namespace' => 'V1',
'prefix' => 'wapp',
], function(){

Route::get('/', 'LoginController@index');
Route::post('/', 'LoginController@login');
Route::get('/orders', 'OrderController@index');
Route::post('/orders/search', 'OrderController@search');
Route::get('/orders/{oid}', 'OrderController@show');

Route::patch('/orders/{oid}', 'OrderController@update');
Route::get('/region','RegionController@index');


});

Моя проблема возникает, когда пользователь вводит неправильный идентификатор заказа или просто нажимает кнопку поиска, приложение перенаправляет на OrderController @ show, который является маршрутом кнопки сведений о заказе в таблице ?? !! почему это происходит

Примечание: если пользователь предоставит действительный идентификатор заказа, все будет хорошо!

Любые идеи будут высоко оценены

0

Решение

Если вы изменяете URL своего браузера и затем нажимаете ввод, он перенаправляет вас на страницу сведений о заказе, потому что это запрос get и запрос GET, вы возвращаете детали заказа, а ваш метод поиска определяется методом POST, который должен работать только тогда, когда Отправляется POST-запрос, который вы можете сделать, только отправив форму.

Кроме того, если вы делаете это правильно, то выполнение следующей команды поможет.

php artisan route:clear
0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector