ThinkPHP5&5.1框架关联模型分页操作示例

2025-05-27 0 26

本文实例讲述了ThinkPHP5&5.1框架关联模型分页操作。分享给大家供大家参考,具体如下:

利用数据库的分页通常比较简单,但在实际项目中,我们往往需要处理复杂的数据,例如多表操作,这时候我们就需要利用模型层的关联操作得到最终想要的数据,而这些数据我们其实也是可以利用ThinkPHP5&5.1内置的分页引擎进行分页的。

卖的车辆我们称之为车源,车源和车主之间是多对一关系(车主可以有多辆车,一辆车只属于一个车主);车源和车辆图片之间是一对多关系(一辆车有多个图片,一个图片只属于一辆车);车辆还有自定义属性,它们之间是多对多关系,车辆的级别在车源表是个数字,具体名称需要到级别表获取。。。。可以看出,这块是非常复杂的,完全使用数据库操作会非常复杂,所以我们选择使用模型层进行处理。

首先建立模型之间的关系:

?

1

2

3

4

5

6

7

8

9

10

11

12
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');

}

同时对应的模型也要建立对应的方法。

在控制器层写方法:

?

1

2

3

4

5

6

7

8
public function lst()

{

$cars_model = model("Cars");

$cars_list = $cars_model->getCarsList();

$this->assign("cars_list",$cars_list);

// dump($cars_list);

return view();

}

其中getCarsList()方法在模型层中实现:

?

1

2

3

4

5

6

7

8

9

10

11
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;

}

模板上写法同普通分页

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43
<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 /}未审核

{/switch}

</td>

<td>

<div class="btn-group open">

<button data-toggle="dropdown" class="btn btn-primary dropdown-toggle" aria-expanded="true">操作 <span class="caret"></span>

</button>

<ul class="dropdown-menu">

<li><a href="">修改</a>

</li>

<li><a href="">删除</a>

</li>

</ul>

</div>

</td>

</tr>

{/volist}

</tbody>

</table>

{$cars_list|raw}

</div>

ThinkPHP5&5.1框架关联模型分页操作示例

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/pan_yuyuan/article/details/81948020

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 ThinkPHP5&5.1框架关联模型分页操作示例 https://www.kuaiidc.com/71167.html

相关文章

发表评论
暂无评论