[英]custom Laravel route not found
我創建了一個自定義控制器操作來保存配置對象的“第二級”,因為初始表單保存了憑據,然后用於從Web服務中提取可用項。
第二級配置方法是
ConfigurationController
public function storeTest(Request $request)
{
dd($request);
}
該路由已添加到web.php
路由文件中:
web.php
// configuration routes
Route::resource('configurations', 'ConfigurationController');
Route::put('configurations/test/{$id}', 'ConfigurationController@storeTest')->name('configurations.test_update');
php artisan route:list
的輸出正確顯示了路徑:
| PUT | configurations/test/{$id} | configurations.test_update | App\Http\Controllers\ConfigurationController@storeTest | web
最后我的表單,使用LaravelCollective表單包:
{!! Form::model($configuration, ['action' => ['ConfigurationController@storeTest', $configuration->id], 'method' => 'put']) !!}
在表單頁面上查看源代碼顯示該操作看起來正確:
<form method="POST" action="http://myapp.app/configurations/test/20010504142745046252000000" accept-charset="UTF-8"><input name="_method" type="hidden" value="PUT">
但是當表單被提交時,它會拋出錯誤,說明NotFoundHttpException in RouteCollection.php line 161
中的NotFoundHttpException in RouteCollection.php line 161
錯誤很簡單。 在路線中,您不需要將美元符號與變量一起使用:
Route::put('configurations/test/{$id}', 'ConfigurationController@storeTest')->name('configurations.test_update');
是不正確的。 它應該只是閱讀:
Route::put('configurations/test/{id}', 'ConfigurationController@storeTest')->name('configurations.test_update');
這解決了這個問題。 感謝那些評論的人的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.