Yii - 从模型中获取属性

我有一个使用以下方法动态设置数据的模型:</ p>

   $ array = array('user_id'=&gt; 12345); 
$ model-&gt; setAttributes($ array);
</ code> </ pre>

但是当我 在下一行运行以下命令,它返回null?</ p>

  echo $ model-&gt; user_id;  //我希望看到12345 
</ code> </ pre>

任何人都可以解释为什么这是空的吗?</ p>
</ div>

展开原文

原文

I have a model that has data set dynamically using the following:

$array = array('user_id' => 12345);
$model->setAttributes($array);

But when I run the following on the next line down it returns null?

echo $model->user_id; // i would expect to see 12345

Can anyone explain why this is null?

dongzan7016
dongzan7016 你确定user_id是一个安全的属性吗?
大约 6 年之前 回复

2个回答



setAttributes </ code>仅适用于在其上设置规则的属性。 如果没有为 user_id </ code>属性设置规则,则需要将其置于 safe </ code>规则下。 这与大规模作业有关。</ p> \ n </ div>

展开原文

原文

setAttributes will only work on attributes that have rules set on it. If there is no rule set for the attribute user_id, then you need to put it under safe rule. This is related to Massive Assignment.

dsf487787
dsf487787 我总是忘记安全规则......
大约 6 年之前 回复



  $ array = array('user_id'=&gt; 12345); 
$ model-&gt; setAttributes($ array );
</ code> </ pre>

这个定义模型</ p>

  echo $ model-&gt; user_id; 
</ code> </ pre>

从列名为user_id的数据库中打印记录。</ p>

 &lt;?php echo CHtml :: beginForm();  ?&gt; 

&lt;?php echo CHtml :: activeLabel($ model,'username'); ?&gt;

&lt;?php echo CHtml :: endForm(); ?&gt;
</ code> </ pre>

此代码仅打印您定义的标签“12345”</ p>

“NULL”返回,可能 列</ p>
</ div>中没有数据

展开原文

原文

$array = array('user_id' => 12345);
$model->setAttributes($array);

This one define the model

echo $model->user_id;

is printing the record from database having column name user_id.

<?php echo CHtml::beginForm(); ?>

<?php echo CHtml::activeLabel($model,'username'); ?>

<?php echo CHtml::endForm(); ?>

This code only printing the label which you defined "12345"

The "NULL" returns, possibily there is no data in the column

drfls28608
drfls28608 echo $ model-> user_id; 将打印模型实例的user_id的当前值。
大约 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问