2015-11-09 12:26:48 11071次浏览 3条回答 0 悬赏 20 金钱

如题: 如何使用hasone() 查询出我需要的字段,而不是整条数据, 例如我用订单orders 去查询对应 custumer用户的信息,但是我只需要customer的用户名 就可以了 ,不需要整个用户信息

  • 回答于 2015-11-09 14:08 举报

    AR : select('customer_name')

    5 条回复
    回复于 2015-11-09 14:18 回复

    $order = orders::find()->where('id=1')->one();
    $order->getCustomer();
    你这个方法不行,我试过了,你想在哪儿加上去

    回复于 2015-11-09 14:19 回复

    我在orders model 方法中定义好了 getCustomer 方法了,也能获取到对应的数据,

    回复于 2015-11-09 14:32 回复

    $order = orders::find()->select('tablename.customer_name')->joinwith('customer')->where('tablename.id=1')->one();

    也可以放在 model getCustomer 裡面意思一樣

    回复于 2015-11-09 15:53 回复

    试了下 还是不行啊····不知道哪步写错了,请问除了 AR类有没有联表查询的,就是 就是 除了查询order 表中一条数据,里面还要包含username 这个字段 求问怎么写

    回复于 2015-11-09 16:46 回复
    $order = orders::find()
    ->select('tablename.customer_name')
    ->joinwith('customer')
    ->where('tablename.id=1')
    ->createCommand()->RawSql;
    
    echo $order;   
    //得到的 SQL 語句去資料庫跑一跑檢視一下正不正確
    

    不然妳就只能用 createCommand 直接在 model 下 sql 語句了

    而且你說 => dingjj2010 這樣寫法可以 那只是放在 MODEL OR CONTROLLER 的差別而已怎麼會不能用..

  • 回答于 2015-11-09 14:25 举报

    例如:

    public function getCustomer()
        {
            return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
        }
    
    改成
    
    public function getCustomer()
    {
        return $this->hasOne(Customer::className(), ['id' => 'customer_id'])->select('username');
    }
    
    4 条回复
    回复于 2015-11-09 15:26 回复

    你的方法有效哦。但是有个问题,我有时候想获取用户电话号码咋办,写死在这里不好吧·······

    回复于 2015-11-09 17:47 回复

    第一种方法, getCustomer()中加参数,如 getCustomer($select='username'),把$select放到下面的select()中.
    第二种,不要用ar关联,用语句拼接把。楼上说的

    回复于 2017-07-07 11:19 回复

    用了楼上说的select限制字段,关联字段列表展示不出来数据,如果是单条数据展示了,多条就无法展示了,是什么情况

    回复于 2017-07-07 16:58 回复

    关联的字段,最好都查询出来

  • 回答于 2018-04-11 11:48 举报

    hasOne 和 hasMany 在模型里面定义?在哪里调用比较合适?传不传参数?谁贴个完整的代码出来,手册我看不懂!!!

    2 条回复
    回复于 2018-04-23 11:37 回复

    兄弟 你收到了告诉我一份

    回复于 2018-07-17 18:10 回复

    兄弟 你收到了告诉我一份

您需要登录后才可以回答。登录 | 立即注册
Rensile
见习主管

Rensile 广州

注册时间:2015-10-09
最后登录:2016-09-14
在线时长:14小时23分
  • 粉丝2
  • 金钱265
  • 威望0
  • 积分405

热门问题