在yii中创建带有关系的下拉列表

y53ybaqx  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(142)

我是Yii框架的新手,现在我尝试从相关表创建下拉列表。我有表“News”[...很多字段,类别]和“NewsCategories”[id,category_name]。在新闻中创建新记录的表单中,我想在类别字段中创建一个下拉列表,当用户可以选择一个category_name时,但类别的id必须记录在新记录中。
请帮助我。对不起,我的英语。我希望我解释它可以理解。
下面是我如何创建关系
模型新闻. php

public function relations()
{

    // NOTE: you may need to adjust the relation name and the related
    // class name for the relations automatically generated below.
    return array(
    'category'=>array(self::BELONGS_TO, 'NewsCategories', 'category'),
    );
}

模型新闻分类. php

public function relations()
{
    // NOTE: you may need to adjust the relation name and the related
    // class name for the relations automatically generated below.
    return array(
    'news'=>array(self::HAS_MANY, 'News', 'id'),
    );
}

以及我如何尝试创建下拉列表:

<?php echo $form->dropDownList($model,'category',CHtml::listdata(News::model()->with('category')->findAll(),'id','category_name'),array('empty'=>'(Select a category')));?>
aydmsdu9

aydmsdu91#

当指定关系时,你不需要指定主键(id),因为yii可以从模型中扣除主键,你只需要指定另一端,所以你的NewsCategory关系应该看起来像这样:

'news'=>array(self::HAS_MANY, 'News', 'category'),

要获取适合下拉列表数据,请使用

CHtml::listData(NewsCategories::model()->findAll(), 'id', 'category_name');

相关问题