おかしい話をすれば、私のLaravelルートがメソッドスプーフィングで作業していない...私は、次のしている:方法スプーフィングはLaravel POSTで働いていない - >
<form action="http://ULTRA_HIDDEN_DOMAIN.dev/admin/page/9" method="POST" accept-charset="UTF-8">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="ULTRA_HIDDEN_KEY">
<input type="text" name="page[name]">
<input type="submit" value="submit">
</form>
:
<form action="{{route('admin.page.update', $page->id)}}" method="POST" accept-charset="UTF-8">
{{ method_field('PUT') }}
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="text" name="page[name]">
<input type="submit" value="submit">
</form>
これは次のようにレンダリングされます
しかし、私はクロームネットワーク上で、次の答えを得る、送信ボタンをクリックしたとき:
Request URL:http://ULTRA_HIDDEN_DOMAIN.dev/admin/page/9 Request Method:POST Status Code:302 Found
私はphp artisan route:list
を行うと、私はそれが記載されている取得:
+--------+-----------+------------------------------------+------------------------------------+-------------------------------------------------------------------+----------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+------------------------------------+------------------------------------+-------------------------------------------------------------------+----------------+
| | GET|HEAD | admin/page | admin.page.index | App\Http\Controllers\Admin\[email protected] | web,auth.admin |
| | POST | admin/page | admin.page.store | App\Http\Controllers\Admin\[email protected] | web,auth.admin |
| | GET|HEAD | admin/page/create | admin.page.create | App\Http\Controllers\Admin\[email protected] | web,auth.admin |
| | GET|HEAD | admin/page/{page} | admin.page.show | App\Http\Controllers\Admin\[email protected] | web,auth.admin |
| | PUT|PATCH | admin/page/{page} | admin.page.update | App\Http\Controllers\Admin\[email protected] | web,auth.admin |
| | DELETE | admin/page/{page} | admin.page.destroy | App\Http\Controllers\Admin\[email protected] | web,auth.admin |
| | GET|HEAD | admin/page/{page}/edit | admin.page.edit | App\Http\Controllers\Admin\[email protected] | web,auth.admin |
+--------+-----------+------------------------------------+------------------------------------+-------------------------------------------------------------------+----------------+
ルートはRoute::resource('page', 'PageController');
を使用して作成されます。
なぜ方法のなりすましが機能していないかについての考えはありますか?
残念ながら私はミドルウェアをチェックして正しく動作していますが、xdebugの問題が発生している可能性があります:)感謝 – JohnnyAce
ドキュメントのバグのために、コントローラに別のリクエストオブジェクトがありました。例えば 'public function update(Request $ request、$ id)'は 'public function update(MyOwnRequest $ request、$ id)'を持っていました。この新しいリクエストは、リダイレクトの問題でした。 – JohnnyAce