2
我最近被引入到Yii框架中,目前正在爲我公司開發一個Web應用程序系統。但是我注意到,當創建模型以便連接到相應的表時,它只允許一次選擇一個關係。不過,我需要用同一個表單連接來自同一個數據庫的兩個單獨的表。如何在Yii中連接兩個表格與一種表格
關於如何完成這個任何想法?
我最近被引入到Yii框架中,目前正在爲我公司開發一個Web應用程序系統。但是我注意到,當創建模型以便連接到相應的表時,它只允許一次選擇一個關係。不過,我需要用同一個表單連接來自同一個數據庫的兩個單獨的表。如何在Yii中連接兩個表格與一種表格
關於如何完成這個任何想法?
裏面的模型,你可以看到下面的功能,
/**
* @return array relational rules.
*/
public function relations()
{
return array(
);
}
在此您可以添加關係。像
'user' => array(self::BELONGS_TO, 'User', 'user_id'),
'comments' => array(self::HAS_MANY, 'Comments', 'blog_post_id'),
等,
如果你的數據庫引擎是InnoDB和表有外鍵關係,那麼關係將自動在創建模型生成。
欲瞭解更多信息read this
您可以使用任意數量的關係。
=============================================
第二次閱讀後,我想你是在問兩個模型的對象是否合成一個表單?爲可以產生在控制器的每個模型的對象,並通過這些對象通過render
或renderPartial
功能查看
例如,
$this->render('admin',array(
'model'=>$model,
'model2'=>$model2,
));
和視圖使用模型和模型2對各個字段
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'sample-form',
'enableAjaxValidation'=>false,
)); ?>
.....
<?php echo $form->labelEx($model,'column'); ?>
<?php echo $form->textField($model,'column'); ?>
<?php echo $form->error($model,'column'); ?>
<?php echo $form->labelEx($model2,'column'); ?>
<?php echo $form->textField($model2,'column'); ?>
<?php echo $form->error($model2,'column'); ?>
....
內部
裏面的控制器功能使用下面的東西(說爲了保存數據)
$model->attributes=$_POST['ModelOnesName'];
$valid = $model->validate();
$model2->attributes = $_POST['ModelTwosName'];
$valid = $model2->validate() && $valid; //if need validation checks
if($valid)
{
$model->save();
$model2->save();
}