[英]The PUT method is not supported for this route. Supported methods: GET, HEAD, POST, DELETE. (note I am using model biding)
[英]The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE. while adding a field
所以我正在學習 laravel 並且我遇到了問題。 我在項目中有項目和任務。 所以我在同一頁面上添加項目任務以顯示項目。 每當我嘗試添加任務時都會遇到此問題
錯誤的圖像
錯誤:
The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE.
web 路線:
Route::resource('projects', 'ProjectsController');
Route::resource('projects/{project}/tasks', 'ProjectTaskController');
路線清單:
+--------+-----------+--------------------------------------+------------------+----------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+--------------------------------------+------------------+----------------------------------------------------+--------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | projects | projects.index | App\Http\Controllers\ProjectsController@index | web |
| | POST | projects | projects.store | App\Http\Controllers\ProjectsController@store | web |
| | GET|HEAD | projects/create | projects.create | App\Http\Controllers\ProjectsController@create | web |
| | GET|HEAD | projects/{project} | projects.show | App\Http\Controllers\ProjectsController@show | web |
| | PUT|PATCH | projects/{project} | projects.update | App\Http\Controllers\ProjectsController@update | web |
| | DELETE | projects/{project} | projects.destroy | App\Http\Controllers\ProjectsController@destroy | web |
| | GET|HEAD | projects/{project}/edit | projects.edit | App\Http\Controllers\ProjectsController@edit | web |
| | GET|HEAD | projects/{project}/tasks | tasks.index | App\Http\Controllers\ProjectTaskController@index | web |
| | POST | projects/{project}/tasks | tasks.store | App\Http\Controllers\ProjectTaskController@store | web |
| | GET|HEAD | projects/{project}/tasks/create | tasks.create | App\Http\Controllers\ProjectTaskController@create | web |
| | GET|HEAD | projects/{project}/tasks/{task} | tasks.show | App\Http\Controllers\ProjectTaskController@show | web |
| | PUT|PATCH | projects/{project}/tasks/{task} | tasks.update | App\Http\Controllers\ProjectTaskController@update | web |
| | DELETE | projects/{project}/tasks/{task} | tasks.destroy | App\Http\Controllers\ProjectTaskController@destroy | web |
| | GET|HEAD | projects/{project}/tasks/{task}/edit | tasks.edit | App\Http\Controllers\ProjectTaskController@edit | web |
+--------+-----------+--------------------------------------+------------------+----------------------------------------------------+--------------+
添加任務的表格:
<form method="POST" action="/projects/{{ $project->id }}/tasks" class="box" >
@csrf
<div class="field">
<label for="description" class="label">New Task</label>
<div class="control">
<input type="text" class="input" name="description" placeholder="New Task">
</div>
</div>
<div class="field">
<div class="control">
<button type="submit" class="button is-link">Add Task</button>
</div>
</div>
</form>
ProjectTaskController中的 store 方法
public function store(Request $request, Project $project)
{
Task::create([
'project_id' => $project->id,
'description' => 'description'
]);
return back();
}
將任務路線移到項目路線上方。 目前, /projects
匹配所有通配符/project/*
路由,這意味着它不會到達 Tasks 路由。
Route::resource('projects/{project}/tasks', 'ProjectTaskController');
Route::resource('projects', 'ProjectsController');
我剛剛意識到我正在嘗試填充的字段沒有添加到$fillable變量中。
前:
protected $fillable = ['completed'];
后:
protected $fillable = ['completed','project_id','description'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.