我是Yii framework
的新人,所以我需要一些帮助从哪里开始。
我需要的是,action and module
向用户显示一个表单,他可以编辑的是自己的个人资料(带个人资料图片),所以我有3个表
user_account || user_personal || user_general
如何构建一个可以一次插入和更新这3个表的表单?
我试试这个:
这就是我所做的,但它仍然没有将数据保存到1个表中。
public function actionUpdate() {
$model = new ProfileUpdate();
if(isset($_POST['ProfileUpdate']))
{
$model->attributes = $_POST['ProfileUpdate'];
if($model->validate())
{
$account = new Profile();
$account->userid = Yii::app()->user->id;
$account->name = $model->name;
$account->website = $model->website;
$account->category = $model->category;
$account->save();
$this->redirect('profile');
}
}
模型:
class Profile extends CActiveRecord
{
public $userid;
public $name;
public $website;
public $category;
public static function model()
{
return parent::model(__CLASS__);
}
public function tableName()
{
return 'userinfo';
}
public function primaryKey()
{
return 'id';
}
public static function userExists($user)
{
return self::model()->countByAttributes( array('username'=>$user) ) > 0;
}
}
答案 0 :(得分:0)
您可以在一个功能中使用所有三个模型
例如:
在创建功能
$model_account = new user_account;
$model_personal= new user_personal;
$model_general = new user_general;
$this->render('create',array(
'model_account'=>$model_account, 'model_personal' => $model_personal, 'model_general' => $model_general
));
这里所有三个模型都通过渲染来创建页面。
在表单页面中,您可以将每个模型属性用作字段
喜欢这个
echo $form->textField($model_account,'account_name');
echo $form->textField($model_personal,'email');
echo $form->textField($model_general,'address');
在创建功能/更新功能
中$model_account->attributes = $_POST['user_account'];
$model_personal->attributes = $_POST['user_personal'];
$model_general->attributes = $_POST['user_general'];
if($model_account->validate() && $model_personal->validate() && $model_general->validate())
{
$model_account->save();
$model_personal->save();
$model_general->save();
}