会员信息表: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');
}
最佳答案
