猿问

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 工匠路线:列表 http://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');


墨色风雨
浏览 97回答 1
1回答

手掌心

根据您的代码,一切看起来都很好。您已经根据此处的专家建议测试了 PUT & PATCH 变体。您可以将指针指向路由文件(web.php),但不能指向控制器的 Any 函数 >>> 这意味着指针没有传递给控制器。指针未从路由文件进入控制器的原因您的路径或控制器名称错误/不匹配从其他地方调用控制器文件问题任何 BACKUP FOLDER 或 BACKUP CONTROLLER 文件存储在 ??&nbsp;[ \app\Http\Controllers\ ]如果答案是 YES,那么可能从 laravel 缓存中调用了来自备份的错误控制器。从控制器文件夹中删除那些备份文件和文件夹。解决方案我认为控制器 PATH 被缓存,而是调用了错误的控制器。尝试以下命令清除常规缓存。php artisan cache:clearphp artisan route:cachephp artisan config:cachephp artisan view:clear清除控制器文件/路径缓存。我们将不得不重新生成自动加载。尝试以下命令。(这一步很重要)composer dumpautoload如果这解决了您的问题,那么您可以使用正常的 html edit.blade 表单语法,如下所示。<form action="{{ route('certificate.update',$certificate_data->id) }}" method="post">&nbsp; &nbsp; &nbsp; &nbsp;{{ csrf_field() }}&nbsp; &nbsp; &nbsp; &nbsp;{{ method_field('PUT') }}&nbsp; &nbsp; &nbsp; &nbsp;// Other form fields</form>&nbsp;在您的控制器上。您的正常代码应该如下所示。public function update(Request $request, Certificate $certificate){&nbsp; &nbsp; return $certificate;}让我知道这个过程是否对您有帮助。祝你好运。
随时随地看视频慕课网APP
我要回答