【问题标题】:Yii2 dropdown different ActiverecordYii2下拉不同的Activerecord
【发布时间】:2016-02-21 12:25:00
【问题描述】:

我正在创建一个表单来输入具有 activeDropdownList 的产品,以从不同的表中选择产品类别。 我在产品和类别模型中使用 ActiveRecord 类,并使用类别模型来填充下拉列表。 当我尝试插入产品时,它失败了,因为下拉列表的名称。

所有其他字段的名称类似于name="CreateEvent[tanggal]">,而我的类别下拉列表:name="id">

如何在没有硬编码下拉属性的情况下集成它?

在我的控制器上:

$kategori = $items = ArrayHelper::map(Kategori::find()->all(), 'id', 'nama');

        // check post header, call $model->save() if post is exist
        if($model->load(Yii::$app->request->post()) && $model->save()) {
            Yii::$app->session->setFlash('status', 'success');
            return $this->redirect(['create']);
        }

在我看来:

$form = ActiveForm::begin();
echo $form->field($model, 'nama')->input('text');
echo $form->field($model, 'lokasi')->input('text');
echo $form->field($model, 'tanggal')->widget(DatePicker:: classname(),
    [
    ]);
echo Html::activeDropDownList($model,'id',$kategori,[]);
echo Html::submitButton('Submit', ['class'=>'btn btn-primary']);
ActiveForm::end();

谢谢。

【问题讨论】:

    标签: php activerecord yii yii2 yii2-model


    【解决方案1】:

    如果我理解正确, 您保存类别的产品表中的列名称是什么?

    你为什么不使用 HTML 而不是使用这样的东西:

    use yii\helpers\ArrayHelper;
    
    $form->field($model,'your column name')->dropdownlist(ArrayHelper::map(Kategori::find()->all(), 'id', 'nama'));
    

    【讨论】:

    • 它有效,谢谢。很抱歉问了这么一个基本问题,我是 yii 的新手
    【解决方案2】:

    表中的字段类似于“category_id”。

    因此您的下拉代码应该是

    echo Html::activeDropDownList($model,'category_id',$kategori,[]);
    

    【讨论】:

    • 它也可以,我想我以前尝试过但它没有用,我不知道为什么谢谢
    猜你喜欢
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多