复选框外键属于Yii中的许多

时间:2013-02-21 13:48:26

标签: checkbox yii foreign-keys one-to-many belongs-to

我是yii框架的新手,所以我可以使用一些帮助。假设我在POST数据库中有一个表,其中一个字段是TYPE。在另一个表格中,我有很多这样的类型:

表类型:

id  name
1   Politic
2   Sport
3   Espiritual

表格帖子:

id  title
1   Politic in Barsovia
2   God exist!
3   Del Po Win in Rotterdam

Table Post_type

id  id_post id_type
1   1       1
2   2       3 
3   3       2

我在TYPE中有关系

'posttype' => array(self::HAS_MANY, 'Post_type', 'ID_TYPE'),

我在POST中有关系

'posttype' => array(self::HAS_MANY, 'Post_type', 'ID_POST'),

我想要example

问题:

如何从表TYPE

中创建复选框列表

如何使用activeCheckBoxList width CAdvancedArBehavior

1 个答案:

答案 0 :(得分:1)

您可以在CActiveForm中使用CHtml :: checkBoxList()(或CHtml :: activeCheckBoxList()或其包装器)。例如,在您的控制器中,您可以使用此行来检索所有相关类型:

$types = CHtml::listData($model->posttype, 'id', 'name'); // prepare the data for check box list
// the rest of your controller code ...
$this->render('create', array(
    'model' => $model,
    'types' => $types,
));

在您的视图中,您可以使用CActiveForm :: checkBoxList()来生成复选框:

<?php echo $form->checkBoxList($model, 'type', $types); ?>

此外,我建议您通过更改名称使您的关系更加用户友好:您应该在“类型”模型中将“帖子”作为关系的名称,并在“帖子”中将“类型”作为关系的名称模型。