这篇文章主要介绍了ThinkPHP55.1框架关联模型分页操作,结合实例形式分析了thinkPHP5、5.1关联模型的建立、控制器、模型的实现及分页操作相关技巧,需要的朋友可以参考下
本文实例讲述了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;
}
模板上写法同普通分页:
<div class="ibox-content">
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>车主</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{volist name="cars_list" id="vo"}
<tr>
<td>{$vo.id}</td>
<td><a href="{:url('index/cars/carsdetails',array('id'=>$vo.id))}" rel="external nofollow" >{$vo.full_name}</a></td>
<td>{$vo.member.member_name}</td>
<td>
{switch $vo.status}
{case 1}上架{/case}
{case 0}下架{/case}
{case -1}已售{/case}
{default
沃梦达教程
本文标题为:ThinkPHP5&5.1框架关联模型分页操作示例
基础教程推荐
猜你喜欢
- php array分组,PHP中array数组的分组排序 2022-08-01
- PHP实现Redis单据锁以及防止并发重复写入 2022-10-12
- PHP中的错误及其处理机制 2023-06-04
- laravel 解决多库下的DB::transaction()事务失效问题 2023-03-08
- 在Laravel中实现使用AJAX动态刷新部分页面 2023-03-02
- 使用PHP开发留言板功能 2023-03-13
- thinkphp3.2.3框架动态切换多数据库的方法分析 2023-03-19
- PHP命名空间简单用法示例 2022-12-01
- laravel ORM关联关系中的 with和whereHas用法 2023-03-02
- PHP获取MySQL执行sql语句的查询时间方法 2022-11-09