Lumen 路由器无线参数设置,不能设置可以参数么

关于此文档的一些信息,你需要阅读 。
HTTP 控制器
[Dependency Injection & -
除了可以在单个的 routes.php 文件中定义所有的请求处理逻辑外,你可能还希望可以使用控制器类来组织此行为。控制器可将相关的 HTTP 请求处理逻辑组成一个类。控制器一般存放在 app/Http/Controllers 目录下。
基础控制器
这是一个基础控制器类的例子。所有 Lumen 控制器都应继承基础控制器类,它包含在 Lumen 的默认安装中:
namespace App\Http\C
class UserController extends Controller
* 显示指定用户的个人数据。
* @return Response
public function show($id)
return User::findOrFail($id);
我们可以通过路由来指定控制器行为,就像这样:
$app-&get('user/{id}', 'UserController@show');
现在,当请求和此特定路由的 URI 相匹配时,UserController 类的 show 方法就会被运行。当然,路由的参数也会被传递至该方法。
控制器和命名空间
有一点非常重要,那就是我们在定义控制器路由时,不需要指定完整的控制器命名空间。我们只需要定义「根」命名空间 App\Http\Controllers 之后的部分类名称即可。bootstrap/app.php 文件在加载 routes.php 时已经把所有路由规则都配置了根控制器命名空间。
若你需要在 App\Http\Controllers 目录内层使用 PHP 命名空间嵌套或组织控制器,只要使用相对于 App\Http\Controllers 根命名空间的特定类名称即可。例如控制器类全名为 App\Http\Controllers\Photos\AdminController,你可以像这样注册一个路由:
$app-&get('foo', 'Photos\AdminController@method');
命名控制器路由
就像闭包路由,你可以指定控制器路由的名称:
$app-&get('foo', ['uses' =& 'FooController@method', 'as' =& 'name']);
你也可以使用 route 辅助函数,生成命名控制器路由的 URL:
$url = route('name');
控制器中间件
指定给控制器路由,例如:
$app-&get('profile', [
'middleware' =& 'auth',
'uses' =& 'UserController@showProfile'
不过,在控制器构造器中指定中间件会更为灵活。在控制器构造器中使用 middleware 方法,你可以很容易地将中间件指定给控制器。你甚至可以对中间件作出限制,仅将它提供给控制器类中的某些方法。
class UserController extends Controller
* 添加一个 UserController 实例。
* @return void
public function __construct()
$this-&middleware('auth');
$this-&middleware('log', ['only' =& [
'fooAction',
'barAction',
$this-&middleware('subscribed', ['except' =& [
'fooAction',
'barAction',
依赖注入与控制器
构造器注入
Laravel 使用
来解析控制器的依赖注入。依赖会自动被解析并注入控制器实例之中。
namespace App\Http\C
use App\Repositories\UserR
class UserController extends Controller
* 用户 Repository 实例。
protected $
* 创建新的控制器实例。
UserRepository
* @return void
public function __construct(UserRepository $users)
$this-&users = $
除了构造器注入之外,你也可以对 控制器行为方法的依赖 使用类型提示。例如,让我们对 Illuminate\Http\Request 实例的其中一个方法使用类型提示:
namespace App\Http\C
use Illuminate\Http\R
class UserController extends Controller
* 保存一个新的用户。
* @return Response
public function store(Request $request)
$name = $request-&input('name');
想要从控制器方法中获取路由参数的话,只要在其它的依赖之后列出路由参数即可。例如:
$app-&put('user/{id}', 'UserController@update');
你依然可以做 Illuminate\Http\Request 类型提示并通过类似下面例子这样来定义你的控制器方法,访问你的路由参数 id:
namespace App\Http\C
use Illuminate\Http\R
use Illuminate\Routing\C
class UserController extends Controller
* 更新指定的用户。
* @return Response
public function update(Request $request, $id)
? Do what you love, love what you do. -
Laravel is a trademark of Taylor Otwell. Copyright & Taylor Otwell.Lumen 框架如何注册多种路由(或 响应所有http请求)-php教程-PHP中文网QQ群微信公众号还没有收藏Lumen 框架如何注册多种路由(或 响应所有http请求)正尝试用Lumen开发一个微信接口,折腾下来后发现微信服务器第一次验证URL时使用的是GET方式请求接口,之后使用的是POST方式访问接口。
所以我想将微信的路由注册为可响应GET和POST两种请求:
查了下laravel 5的文档,为多种请求匹配路由:
Route::match(['get', 'post'], '/', function()
return 'Hello World';
注册为响应所有请求:
Route::any('foo', function()
return 'Hello World';
然后我尝试在 Lumen routes.php文件中将原来的 $app-&get() 和 $app-&post() 换成 $app-&any() ,再现错误:
Fatal error: Call to undefined method Laravel\Lumen\Application::any()
所以,请问:在Lumen框架中,如果要将某个路径注册为可响应所有请求(或者能同时响应POST和GET)应该怎样做呢?
回复内容:
正尝试用Lumen开发一个微信接口,折腾下来后发现微信服务器第一次验证URL时使用的是GET方式请求接口,之后使用的是POST方式访问接口。
所以我想将微信的路由注册为可响应GET和POST两种请求:
查了下laravel 5的文档,为多种请求匹配路由:
Route::match(['get', 'post'], '/', function()
return 'Hello World';
注册为响应所有请求:
Route::any('foo', function()
return 'Hello World';
然后我尝试在 Lumen routes.php文件中将原来的 $app-&get() 和 $app-&post() 换成 $app-&any() ,再现错误:
Fatal error: Call to undefined method Laravel\Lumen\Application::any()
所以,请问:在Lumen框架中,如果要将某个路径注册为可响应所有请求(或者能同时响应POST和GET)应该怎样做呢?
复制一份 get post 各写一次
或者 Function名称不带请求方式 在路由里get post 各定义一次
可以扩展Application类,然后自己写一个方法map
&?php namespace A
use Laravel\Lumen\Application as BaseA
class Application extends BaseApplication {
public function map($methods, $uri, $action)
foreach ($methods as $method) {
$this-&addRoute($method, $uri, $action);
然后在routes.php
$app-&map(['GET','POST'], 'foo', function() {
return 'Hello World';
共3篇258点赞收藏分享:.php.cn&猜你喜欢PHP中文网:独家原创,永久免费的在线,php技术学习阵地!
All Rights Reserved | 皖B2-QQ群:关注微信公众号关于此文档的一些信息,你需要阅读 。
Basic Routing
你可以在 app/Http/routes.php 文件中定义应用程序的大多数路由。最基本的 Lumen 路由仅接受 URI 和一个闭包:
$app-&get('foo', function () {
return 'Hello World';
$app-&post('foo', function () {
可供使用的路由方法
我们可以注册路由来响应任何方法的 HTTP 请求:
$app-&get($uri, $callback);
$app-&post($uri, $callback);
$app-&put($uri, $callback);
$app-&patch($uri, $callback);
$app-&delete($uri, $callback);
$app-&options($uri, $callback);
有时候你可能需要从 URI 中获取一些参数。例如,从 URL 获取用户的 ID。这时可通过自定义路由参数来获取:
$app-&get('user/{id}', function ($id) {
return 'User '.$
你可以依照路由需要,定义任意数量的路由参数:
$app-&get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
路由的参数都会被放在「大括号」内。当运行路由时,参数会通过路由闭包来传递。
注意: 路由参数不能包含 - 字符。请用下划线 (_) 替换。
命名路由让你可以更方便的为特定路由生成 URL 或进行重定向。你可以使用 as 数组键指定名称到路由上:
$app-&get('profile', ['as' =& 'profile', function () {
还可以指定路由名称到控制器动作:
$app-&get('profile', [
'as' =& 'profile', 'uses' =& 'UserController@showProfile'
对命名路由生成 URLs
一旦你在指定的路由中分配了名称,则可通过 route 函数来使用路由名称生成 URLs 或重定向:
// 生成 URLs...
$url = route('profile');
// 生成重定向...
return redirect()-&route('profile');
如果路由定义了参数,那么你可以把参数作为第二个参数传递给 route 方法。指定的参数将自动加入到 URL 中:
$app-&get('user/{id}/profile', ['as' =& 'profile', function ($id) {
$url = route('profile', ['id' =& 1]);
路由群组允许你共用路由属性,例如:中间件、命名空间,你可以利用路由群组统一为多个路由设置共同属性,而不需在每个路由上都设置一次。共用属性被指定为数组格式,当作 $app-&group 方法的第一个参数。
为了了解更多路由群组的相关内容,我们可通过几个常用样例来熟悉这些特性。
指定中间件到所有群组内的路由中,则可以在群组属性数组里使用 middleware 参数。中间件将会依照列表内指定的顺序运行:
$app-&group(['middleware' =& 'auth'], function () use ($app) {
$app-&get('/', function ()
// Uses Auth Middleware
$app-&get('user/profile', function () {
// Uses Auth Middleware
另一个常见的例子是,指定相同的 PHP 命名空间给控制器群组。可以使用 namespace 参数来指定群组内所有控制器的命名空间:
$app-&group(['namespace' =& 'App\Http\Controllers\Admin'], function() use ($app)
// 控制器在「App\Http\Controllers\Admin」命名空间
$app-&group(['namespace' =& 'App\Http\Controllers\Admin\User'], function() use ($app) {
// 控制器在「App\Http\Controllers\Admin\User」命名空间
通过路由群组数组属性中的 prefix,在路由群组内为每个路由指定的 URI 加上前缀。例如,你可能想要在路由群组中将所有的路由 URIs 加上前缀 admin:
$app-&group(['prefix' =& 'admin'], function () use ($app) {
$app-&get('users', function ()
// Matches The "/admin/users" URL
你也可以使用 prefix 参数去指定路由群组中共用的参数:
$app-&group(['prefix' =& 'accounts/{account_id}'], function () use ($app) {
$app-&get('detail', function ($accountId)
// Matches The "/accounts/{account_id}/detail" URL
? Do what you love, love what you do. -
Laravel is a trademark of Taylor Otwell. Copyright & Taylor Otwell.lumen 里路由的 Route:group 怎么用_百度知道
lumen 里路由的 Route:group 怎么用
我有更好的答案
admin'get('/;});,function(){return &hello&index'],function($app){$app-&=&&#39:$app-&group(['prefix&#39应该这样进行写入
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 pdcn路由器参数设置 的文章

 

随机推荐