簡體   English   中英

未找到自定義Laravel路線

[英]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.

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