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
コントローラー機能
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');
これにアクションを変更します
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)
最初に次の職人コマンドを試してみてください:_php artisan cache:clear
_キャッシュがここで問題になっていないことを確認します。
また、更新関数の最初の行にdd('test');
を入れて、結果が表示されないようにすることもできますか?
うまくいかない場合は、モデルを見せてください。そしてコントローラー?
あなたが示すすべてのコードは私にはよく見えます