如何在Laravel 5中通过路由将默认值传递给控制器? [英] How to pass default values to controller by routing in Laravel 5?
本文介绍了如何在Laravel 5中通过路由将默认值传递给控制器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在laravel中,如果我想将参数传递给路由文件中的控制器
In laravel, if I want to pass parameters to a controller in my route file
Route::get('user/sk/{id}' , 'UsersController@findsk');
如果我想传递默认参数:
If I want to pass default parameters:
Route::get('user/{name?}', function ($name = 'John') {
// how do I invoke my controller here?
return $name;
});
如何合并这两件事?有捷径吗?
How do I merge the two things? Is there a shortcut?
Route::get('user/sk/{id}' , 'UsersController@findsk'
// can I add an array of default parameters here?
);
推荐答案
据我所知,没有捷径可走.
As far as I know, there is no shortcut, unfortunately.
要注入一个可选参数:
Route::get('user/{name?}', function ($name = 'John') {
$ctrl = new \App\Http\Controllers\UsersController();
return $ctrl->findsk($name);
});
要注入一个带有更多参数的可选参数:
假设您有一个$id
参数,并且UsersController@findsk
接受$id
和$name
.
To inject one optional parameter with more parameters:
Assuming you had an $id
param and that UsersController@findsk
accepts $id
and $name
.
Route::get('user/{id}/{name?}', function ($id, $name = 'John') {
$ctrl = new \App\Http\Controllers\UsersController();
return $ctrl->findsk($id, $name);
});
要从路由器向控制器注入某些东西:
假设要使用url作为开关.
To inject something in the controller from the router:
Assuming want to use a url as a switch.
Route::get('my-special-url', function () {
$ctrl = new \App\Http\Controllers\UsersController();
return $ctrl->findsk(1, 'Paul');
});
这篇关于如何在Laravel 5中通过路由将默认值传递给控制器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文