方案其实也是看的别人的总结如下
加在eloquent orm
参考过很多 但是 比较详细是这个 安正超写的 在Laravel外独立使用Eloquent
- 直接修改 composer.json 加入如下节点中增加两行内容
{ "require": { "illuminate/database": "^5.0", "illuminate/pagination": "^5.0" } }
- 在终端 项目根目录下执行
composer install - 等待 执行结束
- 如果需要使用国内composer源 请移步Composer 中文镜像 / Packagist 中国全量镜像正式发布!
- 关于引入pagination的原因是因为database没有增加该依赖,如果调用paginate()方法必须加入此依赖
使用方法
下面的内容是我在微擎中的设置
< !--?php
/**
* Created by PhpStorm.
* User: hainuo
* Date: 2017/5/12
* Time: 13:38
*/
require_once IA_ROOT.'/vendor/autoload.php';
use Illuminate\Database\Capsule\Manager as Capsule;
class databases
{
protected $dblink;
public function __construct()
{
if(empty($this--->dblink)){
global $_W;
$dbconfig=$_W['config']['db'];
$database = [
'driver' => 'mysql',
'host' => $dbconfig['host'],
'database' => $dbconfig['database'],
'username' => $dbconfig['username'],
'password' => $dbconfig['password'],
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => $dbconfig['tablepre'],
];
$Capsule = new Capsule;
//创建数据库链接
$Capsule->addConnection($database);
// 设置全局静态可访问
$Capsule->setAsGlobal();
// 启动Eloquent
$Capsule->bootEloquent();
$this->dblink=$Capsule;
}
return $this->dblink;
}
}
说明其实在 执行了$Capsule->bootEloquent();一句后就已经将类静态化了,只要在使用的地方
include db.php
//在合适位置 引入下面的话
use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Pagination\Paginator;
new database();
$result=DB::table('xxx')->find(1);
关于分页需要讲的
-
引入分页
use Illuminate\Database\Capsule\Manager as DB; use Illuminate\Pagination\Paginator; -
调用
paginate()方法 生成分页数据$data = DB::table('xxxx')->where('uid', $uid)->orderBy('id', 'desc')->paginate(10); -
不要以为上面就搞定了 纳尼, 还需要如此
$list = $data->items(); $pager = $data->render();//如果路径在二级目录下 分页访问的url 会指向根目录 -
这样算是搞定了吧, 纳尼 还有坑呢
- 参数 url参数 怎么弄
$data->append(key,value)$data->append($quer) -
path 如何设置 #eloquent orm 如何设置path#
Paginator::currentPageResolver(function () use ($page) { return $page; }); -
当前页码如何设置 #eloquent orm 如何设置当前读取的页码对应的数据`
Paginator::currentPathResolver(function () { return '/app'; }); -
到这里才算完事
补记
昨天写完后,总觉得缺少些东西
今天思考下才知道是为什么。因为 2 和 3 是查看了很多源码 才明白的。
就是说作者将设置分为两类 一种是普通用法,比如设置参数,比如生成分页html另一种是高级用法 配置基础东西 比如 这里的路径问题,一般人使用不到或者说在laravel中都已经被处理好了,基本不需要设置的,比如这里的分页内容获取 指定获取第3页的内容 在laravel中也是配置好的,所以也不需要大家操心。
- 参数 url参数 怎么弄