【发布时间】:2023-03-08 02:34:01
【问题描述】:
我是 Laravel 和 Stackoverflow 的新手
当 Laravel7 发布后,我开始学习 Laravel。 不久前推出了新的8.0版本,我开始尝试。
我无法确定问题是由较新版本的 Laravelor 任何错误配置引起的。
当我尝试以下(edit.blade.php)
{!! Form::open(['action' => ['ProductController@update', $product->id], 'method' => 'POST']) !!}
或
{!! Form::open(['action' => [[ProductController::class, 'update'], $product->id], 'method' => 'POST']) !!}
发生错误
Action ProductController@update 未定义
然后我尝试用类似的路径替换控制器名称
{!! Form::open(['action' => ['App\Http\Controllers\ProductController@update', $product->id], 'method' => 'POST']) !!}
或
{!! Form::open(['action' => [[App\Http\Controllers\ProductController::class, 'update'], $product->id], 'method' => 'POST']) !!}
有效!
所以我认为这是关于命名空间
但我有一个命名空间标题
namespace App\Http\Controllers; 在我的 App\Http\ProductController.php 中
虽然我可以通过在集合表单中输入控制器的完整路径来解决问题, 我担心我的代码有配置错误或语法错误等。
【问题讨论】:
标签: laravel laravelcollective laravel-8