Yii不会加载模型

时间:2015-05-27 21:40:45

标签: php model-view-controller yii

我无法在NewController中加载模型。在其他控制器中,我可以称之为:

$vid = Video::model()->findByPk($id);

它会让我成为合适的模特。

但是在此控制器中:NewController.php它无法正常工作。

public function actionUpdate($id)
{
    $model=$this->loadModel($id);

    $vid = Video::model()->findByPk($id);

    if(isset($vid)) // Check if it works.
       $this->render('update',array('model'=>$model, 'vid'=>$vid));
}

有没有人有任何建议它为什么不起作用?

$id是有效的,$model也是有效的,我会因此而无法正常工作。

一个有效UserController.php的例子:

public function actionView()
{
    if(isset($_GET['user']))
        $username = $_GET['user'];          
    else 
        $username = Yii::app()->user->name;

    $user = User::model()->find("username=:username",array(':username'=>$username));
    $saveQ = SavedQuery::model()->findAll("FK_userid=:id", array(':id'=>$user->id));

    $vid = Video::model()->findByPk($user->id);
    $this->render('View', array('user'=>$user, 'vid'=>$vid, 'saveQ'=>$saveQ));
}

3 个答案:

答案 0 :(得分:0)

你不需要这样做: $vid = Video::model()->findByPk($id);

actionUpdate加载数据以进行更新,参数$ id寻找要更新的记录

答案 1 :(得分:0)

你说的是“ID是视频的外键。数据库的完整性也是正确的。” 但$ vid是使用主键

获取的
$vid = Video::model()->findByPk($id);

所以你应该有

$vid = Video::model()->findAll("FK_XXXX=:id", array(':id'=>$id));

答案 2 :(得分:-1)

你需要对此发表评论:

$model=$this->loadModel($id);

并尝试一下。

相关问题