$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轉成數組就報錯了? ? ?
AR 能數組式存取是因為實作了
ArrayAccess
這個介面啊,想取出資料內容可以用模型的getAttributes
方法