字段信息的关联查询,最优秀的写法是怎样的?

浏览:357 发布日期:2017/03/10 分类:ThinkPHP5专区 关键字: 关联
假设有两个表

会员信息表:id card_number(卡号) member_name(姓名)
积分兑换表:id card_number(卡号) expend(消耗积分)

当查询出 积分对换表 全部记录时,同时想根据当前记录的card_number去会员信息表查询到改会员的姓名,这个怎么写最好呢?读取器?view left?关联模型?

下面是我的几种写法,哪个更好,或者大神有更好的写法请指教。

写法一:读取器protected function getMemberNameAttr($value,$data){
    return db('vip_member')->where('card_number',$data['card_number'])->value('member_name');
    }
写法二:View    public static function selectAll($map = [], $order = '')
    {
        $data_list = self::view('vip_exchange', true)
            ->view('vip_member', 'member_name', 'vip_member.card_number=vip_exchange.card_number', 'left')
            ->where($map)
            ->order($order)
            ->paginate();
        return $data_list;
    }
写法三:关联模型+读取器?    public function member()
    {
        return $this->belongsTo('member');
    }

    protected function getMemberNameAttr($value,$data){
        return $this->member()->where('card_number',$data['card_number'])->value('member_name');
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>