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

 更新时间:2019年08月03日 08:59:37   作者:pan_yuyuan  
这篇文章主要介绍了ThinkPHP5&5.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 /}未审核
        {/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>

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

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

相关文章

  • PCRE回溯次数绕过安全限制的正则解析

    PCRE回溯次数绕过安全限制的正则解析

    这篇文章主要为大家介绍了PCRE回溯次数绕过安全限制的正则解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • 简单实用的PHP文本缓存类实例

    简单实用的PHP文本缓存类实例

    今天小编就为大家分享一篇关于简单实用的PHP文本缓存类实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • PHP中的正则表达式实例详解

    PHP中的正则表达式实例详解

    在编程里基本都会用到正则表达式来处理数据,那么下面就具体在PHP中怎么运用吧,本文通过具体的实例,给大家讲解了PHP中正则表达式的使用方法。
    2017-04-04
  • php使用正则表达式获取字符串中的URL

    php使用正则表达式获取字符串中的URL

    客户端传过来一段字符串,需要从字符串中匹配出所有的url,php该如何实现呢?本文章向大家介绍php如何获取字符串中的URL(网址链接),主要使用到php正则表达式函数preg_match_all,具体实现方法请看下文
    2016-12-12
  • centos 7系统下安装laravel运行环境的步骤详解

    centos 7系统下安装laravel运行环境的步骤详解

    Laravel框架对于开发网页应用来说是一个绝好的的工具,最近正好又在学习linux系统,所以下面这篇文章主要给大家介绍了在centos 7系统下安装laravel运行环境的步骤,需要的朋友可以参考借鉴,下面跟着小编来一起学习学习吧。
    2017-08-08
  • CI框架中集成CKEditor编辑器的教程

    CI框架中集成CKEditor编辑器的教程

    CKEditor是在很多开发过程中都会用到的一个富文本编辑器,那么如何在CI框架中使用它呢?这里介绍了在CI下使用CKEditor的方法,版本比较低,是在CI 1.7.3下使用fckeditor 2.6.6。供大家参考。
    2014-06-06
  • Laravel实现通过blade模板引擎渲染视图

    Laravel实现通过blade模板引擎渲染视图

    今天小编就为大家分享一篇Laravel实现通过blade模板引擎渲染视图,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Laravel中使用Queue的最基本操作教程

    Laravel中使用Queue的最基本操作教程

    Laravel队列服务为各种不同的后台队列提供统一的API,下面这篇文章主要给大家介绍了关于Laravel中使用Queue的最基本操作教程,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • yii实现创建验证码实例解析

    yii实现创建验证码实例解析

    这篇文章主要介绍了yii实现创建验证码的方法,很常见的一类功能,需要的朋友可以参考下
    2014-07-07
  • gd库图片下载类实现下载网页所有图片的php代码

    gd库图片下载类实现下载网页所有图片的php代码

    在前期的php教程就讲了php gd库可以实现远程图片的下载,但是那只是下载了一张图片,原理是一样的,要想下载一个网页的所有图片只要使用正则表达式进行判断,找出所有的图片url就可以进行循环下载了,我特地参照网络资源编写了gd库图片下载类!
    2012-08-08

最新评论