Php 如何在Yii框架中更新视图中的值?
您好,我有一个关于yii框架的问题。我想更新view.php中的一个值,并在BilgiformuController中使用以下代码Php 如何在Yii框架中更新视图中的值?,php,object,yii,return-value,Php,Object,Yii,Return Value,您好,我有一个关于yii框架的问题。我想更新view.php中的一个值,并在BilgiformuController中使用以下代码 public function actionView($id) { $this->loadModel($id)->okunma=1; $this->render('view',array( 'model'=>$this->loadModel($id), )
public function actionView($id)
{
$this->loadModel($id)->okunma=1;
$this->render('view',array(
'model'=>$this->loadModel($id),
));
}
但是代码,我以前不工作。我如何更新actionView中的“Okumma”值。谢谢此代码:
$this->loadModel($id)->okunma=1;
$this->render('view',array(
'model'=>$this->loadModel($id),
));
检索模型(对象),更改okunma
属性并将其丢弃(因为loadModel()
调用的返回值未存储在任何位置),而另一个loadModel()
调用只是再次检索模型
我想你的意思是:
$model = $this->loadModel($id);
$model->okunma=1;
$this->render('view',array(
'model' => $model,
));
这样,检索到的对象存储在一个变量中,允许您修改它并在修改后将其传递给render()
如果希望此更改也传播到数据库,则需要save()
模型:
$model = $this->loadModel($id);
$model->okunma=1;
$model->save();
您不应该在视图中执行更新操作。我认为您需要设置模型属性并在视图中显示它-那么@Liho提供的解决方案是正确的。如果要将数据保存到数据库,应将$\u POST属性分配到模型:
$model = $this->loadModel($id);
$model->okunma=1;
if(isset($_POST['yourModelName'))
{
$model->attributes = $_POST['yourModelName']);
if($model->validate())
{
$model->save(false);
// other operations, eg. redirect
}
}
$this->render('view',array(
'model' => $model,
));
@不客气。我还建议您找到一些关于PHP基础知识、变量、返回值等的好书,您需要学习更多:)oops。代码显示在视图中,但在数据库中不会更新。@MahmutAydın:是的,为此您需要
save()
it。
$model = YourModel::model()->findByPk($id);
$model->okunma=1;
$model->save(false);
$this->render('view',array(
'model' => $model,
));