您现在的位置是:网站首页> 编程资料编程资料
ThinkPHP5&5.1框架关联模型分页操作示例_php实例_
2023-05-25
352人已围观
简介 ThinkPHP5&5.1框架关联模型分页操作示例_php实例_
本文实例讲述了ThinkPHP5&5.1框架关联模型分页操作。分享给大家供大家参考,具体如下:
利用数据库的分页通常比较简单,但在实际项目中,我们往往需要处理复杂的数据,例如多表操作,这时候我们就需要利用模型层的关联操作得到最终想要的数据,而这些数据我们其实也是可以利用ThinkPHP5&5.1内置的分页引擎进行分页的。
卖的车辆我们称之为车源,车源和车主之间是多对一关系(车主可以有多辆车,一辆车只属于一个车主);车源和车辆图片之间是一对多关系(一辆车有多个图片,一个图片只属于一辆车);车辆还有自定义属性,它们之间是多对多关系,车辆的级别在车源表是个数字,具体名称需要到级别表获取。。。。可以看出,这块是非常复杂的,完全使用数据库操作会非常复杂,所以我们选择使用模型层进行处理。
首先建立模型之间的关系:
public function selfattribute() { return $this->belongsToMany("Selfattribute",'cars_selfattribute','selfattribute_id','cars_id'); } public function carsimg() { return $this->hasMany('Carsimg'); } public function member() { return $this->belongsTo('\app\index\model\Member'); } 同时对应的模型也要建立对应的方法。
在控制器层写方法:
public function lst() { $cars_model = model("Cars"); $cars_list = $cars_model->getCarsList(); $this->assign("cars_list",$cars_list); // dump($cars_list); return view(); } 其中getCarsList()方法在模型层中实现:
public function getCarsList() { $cars_list = Cars::paginate(2)->each(function($value,$key){ $level_find = db("level")->where('id',$value['level'])->value('name'); $value['level_name'] = $level_find; $value->carsimg; $value->member; $value->selfattribute; }); return $cars_list; } 模板上写法同普通分页:
{$cars_list|raw}
{volist name="cars_list" id="vo"} ID 名称 车主 状态 操作 {/volist} {$vo.id} {$vo.full_name} {$vo.member.member_name} {switch $vo.status} {case 1}上架{/case} {case 0}下架{/case} {case -1}已售{/case} {default /}未审核 {/switch}

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
相关内容
- thinkPHP5.1框架使用SemanticUI实现分页功能示例_php实例_
- thinkPHP5.1框架中Request类四种调用方式示例_php实例_
- Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解_php技巧_
- php抽象类和接口知识点整理总结_php技巧_
- 使用composer 安装 laravel框架的方法图文详解_php实例_
- php菜单/评论数据递归分级算法的实现方法_php实例_
- PHP实现微信提现(企业付款到零钱)_php实例_
- php curl发送请求实例方法_php技巧_
- php layui实现前端多图上传实例_php实例_
- 安装docker和docker-compose实例详解_php实例_
