2019-03-12 15:26:55 5435次浏览 4条回答 0 悬赏 10 金钱
$order_status = OrderModel::find()->select('order_status')->where(['order_id'=>$order_id])->scalar();

scalar() 方法和 find() 方法有啥区别呢?

最佳答案

  • 回答于 2019-03-12 16:19 举报

    一个直接返回order_status的数值, 比如:50
    一个返回的结果$order_status是OrderModel的一个实例,那个数值50需要用$order_status->order_status来取

  • 回答于 2019-03-12 20:10 举报

    find()和scalar()这俩没有这与那的区别。
    他俩需要配合才能完成一个正常的代码结果。注意是【配合】。
    find()按照文档来说,是返回查询构造器。【查询构造器】是啥东西?这只是个半成品,还需要配合其它方法才能完成一个业务。比如获得一个模型,

    OrderModel::find()->one();//这里find()配合one()方法获得了一个模型的实例。
    OrderModel::find()->all();//这里find()配合all()方法获得了模型的所有实例。
    

    回到find(),它是【查询构造器】,它和scalar如何配合呢?你去看看文档的这一篇吧:
    https://www.yiichina.com/doc/guide/2.0/db-query-builder
    希望你把整篇文章读一下,因为这是Yii2数据库操作的精髓。另外在文章里关注下scalar()如何配合就行了。

您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
副总裁

PHP学院的中学生

注册时间:2018-10-23
最后登录:2024-04-07
在线时长:168小时1分
  • 粉丝29
  • 金钱4730
  • 威望30
  • 积分6710

热门问题