Мое laravel приложение не выбирает правильный маршрут - PullRequest
0 голосов
/ 26 февраля 2020

Мое laravel приложение должно переместиться на маршрут "mango / public / 4", но оно переместится на "mango / public / 4/4". Файл маршрута

route::get('/{id}/edit','LaptopController@edit');
route::patch('/{id}','LaptopController@update');

Обновление (просмотр)

<form method="post" action="{{$laptop->id}}">
    @csrf
    @method('PATCH')
   <table width="100%">
       <tr>
           <td>Enter Name</td>
           <td><input type="text"  name="name"></td>
       </tr>

       <tr>
           <td>Enter Description</td>
           <td><input type="text"  name="description"></td>
       </tr>

       <tr>
           <td><button>Update</button></td>

       </tr>


   </table>
</form>

LaptopController

public function edit($id){
        $laptop=Laptop::find($id);
        return view('update',['laptop'=>$laptop]);
    }

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Это неверно, выводится только идентификатор:

<form method="post" action="{{$laptop->id}}">

Необходимо указать маршрут:

<form method="post" action="{{ route('name-of-route', $laptop-id) }}">

Вы можете получить название маршрута (ов), используя php artisan route:list

0 голосов
/ 26 февраля 2020

Вы можете сделать это легко, если вы назовете свой маршрут. Когда вашим действием является просто идентификатор, например, action="4", это означает, что форма будет отправлена ​​на относительный путь, и поэтому у вас есть /4/4 в вашем URL * 1003. *

// web.php
...
route::patch('/{id}','LaptopController@update')->name('laptop.update');

// update view
<form method="post" action="{{ route('laptop.update', ['id' => $laptop->id]) }}">
...