我刚刚开始学习使用 yii, ,并且已经设法做了一些基本的事情。

假设我有两个简单的表:“用户”和“项目”,在其中关系为1(一个用户可以有很多项目)

我已经使用GII生成了CRUD,但是在“创建/编辑用户页面”中,这不提供下拉列表,而只是我需要输入用户ID的文本字段。

在编辑项目时,我想有一个可以选择用户的下拉列表(因此该元素应显示用户名的列表)。

我认为GII无法生成控制器并为此查看代码

这样做的最佳做法是什么?

我已经宣布了按照指示的关系 http://www.yiiframework.com/doc/guide/1.1/en/database.arr

public function relations()
{
   return array(
        'projects_rel'=>array(self::BELONGS_TO, 'Users', 'user_id'),
    );
}

public function relations()
{
    return array(
        'users_rel'=>array(self::HAS_MANY, 'Projects', 'project_id'),
    );
}
有帮助吗?

解决方案

查找以生成用户列表的示例代码

<?php
    $form = $this->beginWidget('CActiveForm', array(
                'id' => 'project-form',
                'enableAjaxValidation' => true,
            ));

?>

<?php echo $form->dropDownList($model, 'user_id',
                CHtml::listData(Projects::model()->with('projects_rel')->findAll(), 'id', 'username'),
                array('style'=>'width:150px;')
                ); ?>

其他提示

结帐这些GII扩展名,用于生成扩展的CRUD:

两者都能够用关系输入渲染表格。 GTC使用可以自定义的这些输入的关系小部件。

不要忘记不服从

$ this-> performajaxvalidation($型号)

在控制器上,或者您必须创建的项目而不是一个!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top