2019-04-12 15:03:19 1351次浏览 1条回答 0 悬赏 90 金钱

例如:

$t = OrderModel::find()->select(['orderId'])->where(['orderId'=>66760])->one();

$t 的打印结果:

admin\Models\OrderModel::__set_state(array(
   '_attributes' => 
  array (
    'orderId' => 66760,
  ),
   '_oldAttributes' => 
  array (
    'orderId' => 66760,
  ),
   '_behaviors' => NULL,
   '_events' => 
  array (
  ),
))

如果 $t->orderId 获取不到值 结果是 null.(yii的框架是可以的)。

yii 是做怎么做到的可以访问 $t->orderId 获取到值。

PS:上面的结构是模仿yii写的,目的是想了解yii的设计思想。

最佳答案

  • return19931112 发布于 2019-04-12 15:35 举报

    你是想问Yii是如何从数据库查询orderId字段的值,还是$t->orderId是如何通过箭头映射到Model::_attributes

    1 条回复
    回复于 2019-04-12 15:50 回复

    $t->orderId 是如何通过箭头映射到值的。我知道了,是我在 Model 里没有重写 __get(){} 来返回 _attribute 的值。

    php 在获取没有定义的属性时会调用 __get,Model 的 __get 里会返回 _attribute[] 里的属性值。

    觉得很赞
    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
灰太狼
副总裁

灰太狼

注册时间:2016-11-19
最后登录:2023-07-14
在线时长:76小时17分
  • 粉丝28
  • 金钱3290
  • 威望150
  • 积分5550

热门问题