2019-09-11 14:59:36 2336次浏览 4条回答 0 悬赏 10 金钱
$rows = 
(new \yii\db\Query())
    ->select(['id', 'email'])
    ->from('user')
    ->where(['last_name' => 'Smith'])
    ->limit(10)
    ->all();

写成

$rows = 
(new \yii\db\Query())
    ->select(['id', 'email'])
    ->from('user');
    $rows->where(['last_name' => 'Smith'])
    ->limit(10)
    ->all();

这样是不行的,有没有什么方法可以拼上

最佳答案

  • 发布于 2019-09-11 16:38 举报

    具体怎么个“不行”法?这样写是 没问题的
    当然,$rows 这个变量的值 有变化了,弄个其它的变量吧

    $a = (new \yii\db\Query())->select(['id', 'email'])->from('user');
    $rows = $a->where(['last_name' => 'Smith'])->limit(10)->all();
    

    当然 这样也行

    $rows = (new \yii\db\Query())->select(['id', 'email'])->from('user');
    $rows = $rows->where(['last_name' => 'Smith'])->limit(10)->all();
    
    1 条回复
    回复于 2019-09-11 17:19 回复

    哦哦,懂了。感谢

  • 回答于 2019-09-16 15:52 举报

    这样也行(User是model模型):
    User::find()->select('id', 'email')->where(['last_name' => 'Smith'])->limit(10)->all()

  • 回答于 2019-09-18 09:28 举报

    这样也行。。。。。。。。

  • 回答于 2019-10-08 14:03 举报

    默默的想说下命名问题
    只要没调用->all() 那么之前的那一串可以叫做 $query,只有调用->all()之后才是真正的查询到数据,之前的就是 Query对象

    于是就是

    $query = 
    (new \yii\db\Query())
        ->select(['id', 'email'])
        ->from('user');
        
    $query->where(['last_name' => 'Smith']);    
    ......
    $rows = $query->all();
    
您需要登录后才可以回答。登录 | 立即注册
right
试用期

right 福建

注册时间:2019-04-23
最后登录:2019-12-07
在线时长:3小时56分
  • 粉丝0
  • 金钱15
  • 威望0
  • 积分45

热门问题