Vir*_*ral 5 php routes laravel
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>
Run Code Online (Sandbox Code Playgroud)
web.php(路由文件)
Route::group(['prefix' => 'admin'], function(){
Route::resource('certificate', 'CertificateController');
});
Run Code Online (Sandbox Code Playgroud)
php 工匠路线:列表 http://prntscr.com/qf662i
控制器功能
public function update(Request $request, Certificate $certificate)
{
echo 'vvvvv';
return $certificate;
return $input = $request->all();
}
Run Code Online (Sandbox Code Playgroud)
指针未进入控制器更新并仅显示空白页 我还测试了控制器的所有功能
供参考 -> 如果我更改 web.php 并执行以下代码,则指针会出现在那里。但不能进入Controller 更新功能。
Route::put('certificate/{certificate}', function ($certificate) {
return $certificate;
})->name('certificate_update');
Run Code Online (Sandbox Code Playgroud)
根据您的代码,一切看起来都很好。
指针未从路由文件进入控制器的原因
您的控制器路径或名称错误/不匹配
从另一个地方调用控制器文件
问题
如果答案为“是”,则可能会从 Laravel 缓存调用备份中的错误控制器。从控制器文件夹中删除这些备份文件和文件夹。
解决方案
我认为控制器 PATH 已缓存,并且调用了错误的控制器。尝试以下命令来清除常规缓存。
php artisan cache:clear
php artisan route:cache
php artisan config:cache
php artisan view:clear
Run Code Online (Sandbox Code Playgroud)
清除控制器文件/路径缓存。我们必须重新生成自动加载。
尝试执行以下命令。(这一步很重要)
composer dumpautoload
Run Code Online (Sandbox Code Playgroud)
如果这解决了您的问题,那么您可以使用正常的 html edit.blade 表单语法,如下所示。
<form action="{{ route('certificate.update',$certificate_data->id) }}" method="post">
{{ csrf_field() }}
{{ method_field('PUT') }}
// Other form fields
</form>
Run Code Online (Sandbox Code Playgroud)
在你的控制器上。你的正常代码应该像下面这样工作。
public function update(Request $request, Certificate $certificate)
{
return $certificate;
}
Run Code Online (Sandbox Code Playgroud)
让我知道这个过程是否对您有帮助。祝你好运。