簡體   English   中英

如何在Laravel 5中將參數傳遞給隱式控制器?

[英]How to pass parameter to implicit controller in Laravel 5?

在laravel 4.2和laravel 5.3中,路由中都有使用隱式控制器的選項。 兩種版本的語法相同。

Route::controller('myroute', 'myDearController');

因此,URL為:

http://my.domain.com/myroute/function-name/parameter1/parameter2

在laravel 4中,控制器如下所示:

//..... Some other controller related syntax ......
public function getFunctionName($parameter1, $parameter2) {
    $inputs = Input::all();
    dd($inputs);
}
//..... Some other controller related syntax ......

但是,在laravel 5中,要獲取GET輸入,它將占據一個參數位置,因此我嘗試進行如下操作:

//..... Some other controller related syntax ......
public function getFunctionName(Request $request, $parameter1, $parameter2) {
    $inputs = $request->all();
    dd($inputs);
}
//..... Some other controller related syntax ......

但是,URL返回The site can't be reached 我嘗試過換位置

//..... Some other controller related syntax ......
public function getFunctionName( $parameter1, $parameter2, Request $request) {
    $inputs = $request->all();
    dd($inputs);
}
//..... Some other controller related syntax ......

這是行不通的。 我知道我可以將Route::get('myroute/function-name/{$parameter1}/{$parameter2}', 'myDearController@getFunctionName')到路由文件中,但除了在路由文件中明確指定外,有默認的方法嗎?

對於顯式路由,它應該是{parameter}而不是{$parameter} 所以,

Route::get('myroute/function-name/{parameter1}/{parameter2}', 'myDearController@getFunctionName')

您不再可以使用::controller ,因此您需要為Laravel 5應用創建顯式路由,並且沒有默認方法可以完成::controller在4.2中的操作。 您可以查看資源控制器 ,這些控制器允許您將某些隱式路由用於CRUD。

Laravel資源路由通過單行代碼將典型的“ CRUD”路由分配給控制器。

Route::resource('myroute', 'myDearController');

如果您隨后使用php artisan route:list ,則會看到所有路由的列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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