关于cakephp的联表操作

来源:互联网 发布:win32多线程编程实例 编辑:程序博客网 时间:2024/06/06 12:46

比方有一个评分表,上面有人员,内容,以及打分。

那么需要两张数据表,一张research表字段为id以及name,一张admin表字段为id,user_id,content,grade,addtime。

admin表user_id外键research表id,这就关联查询到了。

那么我们的前端页面用的是research表通过foreach循环出来表单进行提交,

另外我们还需要在cakeModel下建立以个Admin.php的文件,大概代码

class Admin extends AppModel{

public $name='admin' //数据表名

public $belongsTo=array(

 'research'=>array(

    'className'=>'research',

   'foreignKey'=>'user_id'  //research 表外键 admin表的user_id

)

);

}

后面的代码ResearchesController控制器下写两种方法,

public $helpers = array('Html', 'Form');public function index(){   $data = $this->Research->find('all');    $this->set('posts',$data );    if($this->data){       // pr($this->data);exit;       /*$data=$this->data;        $count=count($data['Research']['content']);        $aa='';        for($i=0;$i<$count;$i++){            $aa[]=array($data['Research']['user_id'][$i],$data['Research']['content'][$i],$data['Research']['grade'][$i]);        }       // pr($aa);       foreach($aa as $k=>$v){           $datas['user_id'] = $v[0];$datas['content'] = $v[1];$datas['grade'] = $v[2];$datas['addtime']=time();           //var_dump($datas);exit;           $this->loadModel('Admin');           $this->Admin->saveAll($datas);       }*/       // pr($this->data);exit;        //pr($_POST);exit;        $datas=$this->data;        $arr=array('grade'=>array(2=>'aa',5=>'bb',6=>'ss',8=>''),            'content'=>array(2=>8,5=>3,6=>7,8=>4)        );        $sum=0;        foreach($datas['Research']['grade'] as $k=>$v){            if(!empty($v)){                $data=array();                $data['user_id']=$k;                $data['grade']=$v;                $data['content']=$datas['Research']['content'][$k];                $data['addtime']=time();                $this->loadModel('Admin');                $return=$this->Admin->saveAll($data);                if($return){                    $sum++;                }            }        }    }}



1 0
原创粉丝点击