我正在从事laravel项目的练习。使用PUT / PATCH以html格式发送数据时出现错误。我阅读了laravel文档,并在html代码行中输入了“ @method('PUT')”,但是此错误仍然出现。我可以解决这个错误吗?谢谢。
web.php文件
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/course', 'CourseController@index');
Route::post('/course','CourseController@store');
Route::get('/profile','ProfileController@index');
Route::get('/about','HomeController@about');
Route::get('/contact','HomeController@contact');
Route::get('/organization','OrganizationController@index');
Route::get('/organization/create','OrganizationController@create');
Route::post('/organization','OrganizationController@store');
Route::get('/organization/{organizationId}','OrganizationController@show');
Route::get('/organization/{organizationId}/edit','OrganizationController@edit');
Route::patch('/organization/{organizationId}','OrganizationController@update');
OrganizationController(此案例更新功能)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class OrganizationController extends Controller
{
public function index(){
$organizations = \App\Organization::All();
return view('organization.index',compact('organizations'));
}
public function create(){
return view('organization.create');
}
public function store(){
$data = request()->validate([
'organizationName' => 'required',
'password' => 'required',
'organizationType' => 'required',
'email' => 'email',
'telephoneNo',
'webpage',
'organizationEmail'
]);
\App\Organization::create($data);
return redirect('/organization');
}
public function show($organizationId){
$organization = \App\Organization::findOrFail($organizationId);
return view('organization.show',compact('organization'));
}
public function edit(\App\Organization $organization){
return view('organization.edit',compact('organization'));
}
public function update(\App\Organization $organization){
$data = request()->validate([
'organizationName' => 'required',
'password' => 'required',
'organizationType' => 'required',
'email' => 'email',
'telephoneNo',
'webpage',
'organizationEmail'
]);
$organization->update($data);
return redirect('/organization');
}
}
edit.blade.php
<h1>Edit Organization</h1>
<form action="/organization/{{ $organization->id }}" method="POST">
<input type="hidden" name="_method" value="PATCH">
@csrf
<div>
<label for="name">Organization Name</label>
<input type="text" name="organizationName" autocomplete="off" value="{{
$organization>organizationName }}">
@error('name')<p>{{ $message }}</p> @enderror
</div>
<div>
<label for="organizationType">Organization Type</label>
<input type="text" name="organizationType" autocomplete="off" value="{{
$organization>organizationType }}">
@error('organizationType')<p>{{ $message }}</p> @enderror
</div>
<div>
<label for="password">Organization Password</label>
<input type="password" name="password" autocomplete="off" value="{{ $organization->password
}}">
@error('password')<p>{{ $message }}</p> @enderror
</div>
<div>
<label for="name">Telephone Number</label>
<input type="text" name="telephoneNo" autocomplete="off" value="{{
$organization>telephoneNo }}">
@error('telephoneNo')<p>{{ $message }}</p> @enderror
</div>
<div>
<label for="webpage">Web Site</label>
<input type="text" name="webpage" autocomplete="off" value="{{ $organization->webpage }}">
@error('webpage')<p>{{ $message }}</p> @enderror
</div>
<div>
<label for="organizationEmail">E-Mail</label>
<input type="email" name="organizationEmail" autocomplete="off" value="{{
$organization>organizationEmail }}">
@error('email')<p>{{ $message }}</p> @enderror
</div>
<button>Save Organization</button>
</form>
[我尝试编辑此页面]http://localhost:8000/organization/1/edit单击保存,我看到此错误。Error page
谢谢。
在您的form
标记后加上此行:
@method('PATCH')
如果您想放,请放它
@method('PUT')