手机版

ThinkPHP55.1框架关联模型分页操作示例

时间:2021-08-21 来源:互联网 编辑:宝哥软件园 浏览:

本文举例说明了ThinkPHP55.1框架关联模型的分页操作。分享给大家参考,如下:

使用数据库分页通常比较简单,但是在实际项目中,我们经常需要处理复杂的数据,比如多表操作。此时,我们需要使用模型层的关联操作来获取最终的数据,实际上我们可以使用ThinkPHP55.1内置的分页引擎来对这些数据进行分页。

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

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

public function self attribute(){ return $ this-belongsToMany(' self attribute ',' cars_selfattribute ',' selfattribute_id ',' cars _ id ');} public function cars img(){ return $ this-HasMull(' Cars img ');} public function Member(){ return $ this-belongsTo(\ app \ index \ model \ Member ');}同时,相应的模型也应该建立相应的方法。

控制器层的写入方法:

公共函数lst(){ $ Cars _ model=model(' Cars ');$ cars _ list=$ cars _ model-GetCarsList();$this-assign('cars_list ',$ cars _ list);//dump($ cars _ list);返回视图();getCarsList()方法在模型层实现:

公共函数getcars list(){ $ cars _ list=cars : paginate(2)-每个(函数($value,$ key){ $ level _ find=db(' level ')-其中(' id ',$ value[' level '])-value(' name ');$ value[' level _ name ']=$ level _ find;$ value-cars img;$ value-成员;$ value-self attribute;});返回$ cars _ list}模板上的书写与普通分页相同:

div class=' ibox-content ' table class=' table table-bordered ' d tr thid/th name/th th owner/th status/th operation/th/tr/the d t body { volist name=' cars _ list ' id=' VO ' } tr TD { $ VO . id }/TD TDA href=' { : URL(' index/cars/cars details ', array(' id '=$ VO . id))} ' rel=' external no follow ' { $ VO . full _ name }/a/tdtd { $ VO . member . member _ name }/tdtd { switch $ VO . status } { Case 1 }上架{/Case } { Case } { Case-1 }售出{/case} {default /}未批准{/switch }/Ttddiv class=' BTN-组打开'按钮数据-切换=' drop ' class=' BTN BTN-主下拉-切换' aria-expanded='

更多对thinkPHP感兴趣的读者可以查看本网站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《PHP模板技术总结》、0103010。

希望本文对基于ThinkPHP框架的PHP编程有所帮助。

版权声明:ThinkPHP55.1框架关联模型分页操作示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。