从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解(7)
使用connect方法切换数据库:
<?php namespace app\index\controller; use think\Db; class Index { public function index() { $db1 = Db::connect('db1'); $db2 = Db::connect('db2'); $db1->query('select * from lws_article where art_id = 1'); $db2->query('select * from lws_article where art_id = 2'); } }
【系统常量】
tp5废除了一大堆常量:
REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_AJAX __EXT__ COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBUG MODULE_PATH等
需要使用的常量可以自己定义,例如IS_GET、IS_POST
我在父类的初始化方法中定义了这两个常量:
<?php namespace app\index\controller; use think\Controller; class Base extends Controller { public function _initialize() { define('IS_GET',request()->isGet()); define('IS_POST',request()->isPost()); } }
然后在子类控制器中就可以使用这个常量做一些判断:
<?php namespace app\index\controller; class Index extends Base { public function index() { if(IS_POST){ echo 111; }else{ echo 222; } } }
【定义路由】
例如一篇博客详情页,原来的网址为:http://oyhdo.com/home/article/detial?id=50,即home模块下的article控制器下的detial操作方法,传递参数id。
在路由配置文件 application/route.php 中添加路由规则:
return [ 'article/:id' => 'home/article/detial', ];
或者使用 Route 类,效果一样:
use think\Route; Route::rule('article/:id','home/article/detial');
定义路由规则之后访问http://oyhdo.com/article/50即可
【url分隔符的修改】
修改 application/config.php 中的 pathinfo_depr :
// pathinfo分隔符 'pathinfo_depr' => '-',
访问网址变为:http://oyhdo.com/article-50
【跳转、重定向】
tp3里面的正确跳转:$this->success()
、错误跳转:$this->error()
、重定向:$this->redirect()
,在tp5里面同样适用(继承\think\Controller)
tp5新增 redirect()
助手函数用于重定向:
return redirect('https://www.oyhdo.com');
内容版权声明:除非注明,否则皆为本站原创文章。