落叶随风
  • 首页
  • 技术篇
    • Python学习
  • 生活篇
  • 娱乐篇
  • 留言板
  • 登录 /
  • 注册

技术篇 > ThinkPHP5 Model分层及多对多关联的建立

2017-10-01  小   中   大    2833 0   蓝  绿  黄  白 

ThinkPHP5 Model分层及多对多关联的建立

  笔者最近入手ThinkPHP5,准备用它来实现一个学生作业管理系统。简单的说就是学生在上面交老师布置的课程作业,老师也可以发布修改作业。过程中势必会碰到学生、班级和老师之间的关系。它们之间的关系是多对多的关系。下面我们主要分析班级和作业的关系。每个班级的学生可以有多个作业,同样的作业也可以布置给不同的班级。所以班级和作业之间的关系是多对多的关系。班级表(tb_clas),作业表(tb_task),中间表(tb_task_class)。下面写Model层代码,将Model层细分为logic层、service层、Model层(将数据与逻辑分开)。

Model层代码如下:

1.班级(clas.php)

<?php
namespace app\index\model;
use think\Model;
class Clas extends Model
{
    public function task()
    {
        return $this->belongsToMany('Task','tb_task_clas');
    }
}

 2.作业(task.php)

<?php
namespace app\index\model;
use think\Model;
class Task extends Model
{
    public function clas()
    {
        return $this->belongsToMany('Clas','tb_task_clas');
    }
 
}

这样班级和作业模型之间的多对多关系就建立了。下面来实现查找某个学生所有被布置的作业列表。这又牵涉到学生表tb_Student,我们在学生模型的logic中来写这个逻辑(将数据与处理分开)

3.学生模型的Logic层

<?php
namespace app\index\logic;
use think\Model;
use app\index\model\Clas;
class Student extends Model
{
    //获取学生所在班级的所有作业
    public function getTasks($stuno)
    {
        $stu=$this::get(['stu_no'=>$stuno]);
        $clas=Clas::get(['clas_id'=>$stu['clas_id']]);
        return $clas->task;
    }
}

 这样在controller中实例化该logic后就可以查找任意学生所要做的作业了,Controller中代码如下:

$stulogic=\think\Loader::model('Student','logic');
        $stuno=$request->session('stuno');
        //dump($stulogic->getTasks($stuno));
        $tasklist=$stulogic->getTasks($stuno);
        //dump($tasklist);
        $this->assign('tasklist',$tasklist);

 页面中用一个volist就可以搞定了:

{volist name="tasklist" id="task"}                            
                            <li>
                                    <h4>{$task.task_title}</h4>
                                    <p>{$task.task_content}</p>    
                                    
                            </li>
                        {/volist}


注:本文转载自http://www.cnblogs.com/nerd/archive/2016/10/26/6000834.html,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
上一篇 下一篇

评论



admin: 大师法撒旦法沙发垫阿萨德发
10月03日 10:09

分享

热门文章

  • 1php7.2 des-ede3-ec...
  • 2ThinkPHP5 Model分层及...
  • 3centos6.8设置nginx开机...

最新加入

最新评论

admin: test!! 查看原文 12月23日 16:59
admin: 电风扇 查看原文 10月03日 10:10
admin: 大师法撒旦法沙发垫阿萨德发 查看原文 10月03日 10:09

  • 首页
  • |技术篇
  • |生活篇
  • |娱乐篇
  • |留言板

友情连接: 云书屋  沙豆网  免费书库  柴油动力共轨配件釆购  河南设浩建筑劳务分包有限公司  

Copyright © 2017 落叶随风&blog(tongchao.liu)版权所有
地址:河南省郑州市二七区
豫ICP备15015854号-1