Yii中relations的用法

 class AmsPriceNewcar extends AmcPriceNewcar
{
    public $mileage;


  public function relations()
    {
        return array(
            'm'  => array(self::BELONGS_TO, 'AmcModelInfo', '' , 'on'=>' t.mid=m.mid'),
            'ps' => array(self::BELONGS_TO, 'AmcSeriseParent', 'pserid'),
           'b'  => array(self::BELONGS_TO, 'AmcBrand', 'bid')
        );
    }

    public function searchMaintain()
    {
        $criteria=new CDbCriteria;
               //直接关联上面的relations
<pre name="code" class="html">               $criteria->with   = array('m');
        $criteria->join   = 'JOIN gocar_mileage AS Mil ON t.pserid=Mil.pserid';       $criteria->select = 't.pserid,mileage,t.bid';        $criteria->group  = 't.pserid';        $criteria->order  = 't.pserid DESC';        return new CActiveDataProvider($this, array(            'criteria'=>$criteria,        ));    }
 


1、这里遇到的问题,用了$criteria->join方法,查询报错,原因是gocar_mileage表与主表中有字段名相同,于是用了$criteria->select来查找要显示的字段避开。

2、在视图层显示的时候,发现mileage字段报错,要在该类中定义 public $mileage;才能调用

3、relations中的b在views失效,但是没有报错,原理是$criteria->select没加上管理的t.bid(因为一开始显示数据不需要bid,但是relations调用到,所有要带上)

4、relations不是主键去关联的时候的写法

 'm'  => array(self::BELONGS_TO, 'AmcModelInfo', '' , 'on'=>' t.mid=m.mid'),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值