Laravel学习教程之路由模块

时间:2017-09-05

使用action方法,第一个参数为指定路由的 action 名,第二个参数是参数数组,第三个参数决定是否显示根目录(默认为 true)

$route = new Route(['GET'], 'foo/bam', ['controller' => 'foo@bar']);
$routes->add($route);

// 输出 http://www.foo.com/foo/bam
$url->action('foo@bar');
$route = new Route(['GET'], 'foo/invoke', ['controller' => 'InvokableActionStub']);
$routes->add($route);

// 输出 http://www.foo.com/foo/invoke
$url->action('InvokableActionStub');

设置全局默认参数

$url->defaults(['locale' => 'en']);

$route = new Route(['GET'], 'foo', ['as' => 'defaults', 'domain' => '{locale}.example.com', function() {}]);

// 路由 url 有参数,但没有传参数值,则会找全局默认参数值;输出 http://en.example.com/foo
$url->route('defaults');

设置全局命名空间

这样调用的时候,不用在 action 上省略这部分命名空间

// 设置全局命名空间
$url->setRootControllerNamespace('namespace');

// 配置添加路由
$route = new Route(['GET'], 'foo/bar', ['controller' => 'namespace\foo@bar']);
$routes->add($route);
$route = new Route(['GET'], 'foo/invoke', ['controller' => 'namespace\InvokableActionStub']);
$routes->add($route);

// 输出 http://www.foo.com/foo/bar; action 的值省略 namespace 这个命名空间
$url->action('foo@bar');
// 输出 http://www.foo.com/foo/invoke; action 的值省略 namespace 这个命名空间
$url->action('InvokableActionStub');

// 配置添加路由
$route = new Route(['GET'], 'something/else', ['controller' => 'something\foo@bar']);
$routes->add($route);

// 输出 http://www.foo.com/something/else; action 的最前面加了 `\`,全局命名空间下调用
$url->action('\something\foo@bar');

跳转器

跳转器内部提供了以下跳转;

home

通过调用app('redirect')->home()会跳转至根目录下\;

public function home($status = 302)

back

通过调用app('redirect')->back()会跳转至上一次访问页面;或者全局帮助函数back()也可以;

public function back($status = 302, $headers = [], $fallback = false)

第三个参数表示,如果没有前一次访问请求,访问哪个页面,具体源码如下:

if ($url) {
  return $url;
} elseif ($fallback) {
 return $this->to($fallback);
} else {
 return $this->to('/');
}

refresh

通过调用app('redirect')->refresh()会刷新当前访问页面;

public function refresh($status = 302, $headers = [])

to

通过调用app('redirect')->to('path')会跳转至指定路径页面;或者全局帮助函数redirect('path')也可以;

这里的 path 路径是不包含根目录的,例如(foo/bar);

public function to($path, $status = 302, $headers = [], $secure = null)

第四个参数表示是否使用https;

away

通过调用app('redirect')->away('path')会跳转至指定路径页面;

这里的 path 路径是包含根目录的,例如(http://xx.com/foo/bar);

public function away($path, $status = 302, $headers = [])

secure

通过调用app('redirect')->secure('path')会跳转至指定路径页面;这里的path路径是不包含根目录的;

public function secure($path, $status = 302, $headers = [])

其本质是调用了to方法

return $this->to($path, $status, $headers, true);

route

通过调用app('redirect')->route('route_as_name') ,根据路由的as名会跳转至与路由一致的url路径页;

public function route($route, $parameters = [], $status = 302, $headers = [])

action

  • 共4页:
  • 上一页
  • 3/4
  • 下一页
  • 上一篇:PDO操作MySQL的基础教程(推荐) 下一篇:Django中的cookie与session操作实例代码

    相关文章

    最新文章