因此,我正在学习laravel,但遇到了问题。我在项目中有项目和任务。因此,我将项目任务添加到同一页面上以显示项目。每当我尝试添加任务时都会遇到此问题
错误图片
错误:
The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE.
网络路线:
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();
}
我刚刚意识到,我尝试填充的字段没有添加到$ fillable变量中。
之前:
protected $fillable = ['completed'];
后:
protected $fillable = ['completed','project_id','description'];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句