我有一个名为CustomerController的类,具有Update函数:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
//use app\model\Customer;
use Illuminate\Support\Facades\View;
use App\model\Customer;
class CustomerController extends Controller
{
public function getAllCustomer()
{
return Customer::get();
}
public function addNewCustomer(Request $request)
{
$validatedData = $request->validate([
'Title' => 'required',
'Name' => 'required|max:255',
'Surname' => 'required|max:255',
'Email' => 'required',
'Phone' => 'required',
'Password' => 'required',
'dateofBirth' => 'required'
]);
return \app\model\Customer::create($request->all());
}
public function update (Request $request , Customer $id)
{
$id->update($request->all());
}
这是路线:
Route::put('Customer/{id}' , 'CustomerController@update');
答案 0 :(得分:2)
在进行更新(因此使用PUT方法)时,您的表单中必须具有隐藏的输入,如下所示:
<input type="hidden" name="_method" value="PUT">
该表格仍将是帖子
<form action="/" method="POST">
或者如@kerbholz所述(非常感谢),您可以使用帮助器
{{ method_field('PUT') }}
答案 1 :(得分:0)
同时使用put和patch更改路由方法
出现此错误的主要原因是表单提交方法与route方法不同。
Route::match(['put', 'patch'], '/Customer/{id}','CustomerController@update');