Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Yii框架中更新视图中的值?_Php_Object_Yii_Return Value - Fatal编程技术网

Php 如何在Yii框架中更新视图中的值?

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), )

您好,我有一个关于yii框架的问题。我想更新view.php中的一个值,并在BilgiformuController中使用以下代码

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,
));