php - Yii2 AR查出来的对象使用数组方式也可以访问??
给我你的怀抱
给我你的怀抱 2017-06-23 09:11:24
0
1
892

$infoModel = InfoModel::findOne(1);
上面就是查找id为1的数据,我打印过$infoModel,他是个对象
可是 输出以下2句都可以成功打印正确数据:

echo $infoModel -> name; //这个可以理解   他是对象可以->
echo $infoModel['name']; //这个不理解  他不是数组啊

以下是打印的$infoModel:

app\models\InfoModel Object
(
    [_attributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 1
            [name] => 我问问2
            [age] => 32
        )

    [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 1
            [name] => 我问问2
            [age] => 32
        )

    [_related:yii\db\BaseActiveRecord:private] => Array
        (
        )

    [_errors:yii\base\Model:private] => 
    [_validators:yii\base\Model:private] => 
    [_scenario:yii\base\Model:private] => default
    [_events:yii\base\Component:private] => Array
        (
        )

    [_behaviors:yii\base\Component:private] => Array
        (
        )

)

还有顺便问下<?php echo $form -> field($infoModel,'name')->textInput(array('value' => $infoModel['name'])); ?>
这里的field的第一个参数$infoModel是不是一定是模型对象,我试着在控制器把$infoModel转成数组就报错了???

给我你的怀抱
给我你的怀抱

全部回复(1)
習慣沉默

AR 能数组式访问是因为实现了ArrayAccess这个接口啊,想取出数据内容可以用模型的 getAttributes方法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板