从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');
内容版权声明:除非注明,否则皆为本站原创文章。
