如何在Laravel 5中通过路由将默认值传递给控制器​​? [英] How to pass default values to controller by routing in Laravel 5?

查看:103
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆