【发布时间】:2020-08-27 11:41:23
【问题描述】:
所以我正在学习 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
public function store(Request $request, Project $project)
{
Task::create([
'project_id' => $project->id,
'description' => 'description'
]);
return back();
}
【问题讨论】:
-
您在 projects/6 上调用 POST,这是不正确的,应该是 projects/6/tasks,表单似乎正确
标签: php laravel web routes laravel-7