簡體   English   中英

此路由不支持 POST 方法。 支持的方法:GET、HEAD、PUT、PATCH、DELETE。 在添加字段時

[英]The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE. while adding a field

所以我正在學習 laravel 並且我遇到了問題。 我在項目中有項目和任務。 所以我在同一頁面上添加項目任務以顯示項目。 每當我嘗試添加任務時都會遇到此問題

web 頁面的圖像

錯誤的圖像

錯誤:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM