我无法在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));
}
答案 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);
并尝试一下。