web-dev-qa-db-ja.com

Laravel 6.8 PUTメソッドが機能せず、空白のページが表示される

Laravel 6.8 PUTメソッドがいずれかのコントローラーで機能せず、空白のページが表示される

どんな提案や解決策でも大歓迎です。以下はコードの要約です。ルートポインターがコントローラーの更新機能の下にありません

HTML edit.blad.php({{method_field( 'PUT')}}でテストしました)

<form class="form-horizontal" action="{{ route('certificate.update',$certificate_data->id) }}" method="post">
    {{ csrf_field() }}
    <input type="hidden" name="_method" value="PUT">

    // Other Form Fields 

</form>

web.php(ルートファイル)

Route::group(['prefix' => 'admin'], function(){
    Route::resource('certificate', 'CertificateController');
});

php artisan route:listhttp://prntscr.com/qf662i

これはroute:listの出力です

コントローラー機能

public function update(Request $request, Certificate $certificate)
{
        echo 'vvvvv'; 
        return $certificate;
        return $input = $request->all();

}

コントローラの更新にポインタが入らず、空白のページしか表示されないコントローラへのすべての機能でテストしました

参考のために-> web.phpを変更して次のコードを実行すると、ポインターがそこに来ます。ただし、コントローラー更新機能には含まれません。

Route::put('certificate/{certificate}', function ($certificate) {
        return $certificate;
})->name('certificate_update');
5
Vipul

これにアクションを変更します

action="{{ route('certificate.update',[$certificate_data->id,\App\Certificate::find($certificate_data->id) ]) }}"

または

action="{{ route('certificate.update',[$certificate_data->id,App\Certificate::find($certificate_data->id) ]) }}"

PUTの代わりに<input type="hidden" name="_method" value="PATCH">を使用

このようにコントローラの関数を変更してみてください:

public function update(Request $request, $certificate)
0
Mike Foxtech

最初に次の職人コマンドを試してみてください:_php artisan cache:clear_キャッシュがここで問題になっていないことを確認します。

また、更新関数の最初の行にdd('test');を入れて、結果が表示されないようにすることもできますか?

うまくいかない場合は、モデルを見せてください。そしてコントローラー?

あなたが示すすべてのコードは私にはよく見えます

0
Huub