gpt4 book ai didi

yii2 Kartik-V Typeahead Basic 自动完成名称但存储整数值

转载 作者:行者123 更新时间:2023-12-01 00:48:42 24 4
gpt4 key购买 nike

更新已在以下

我正在尝试将 Kartik-V Typeahead Basic 小部件与 Yii2 框架一起使用。

下面的代码用于显示所需的数据,用户可以通过大学名称进行搜索,它会出现在自动完成列表中。

问题是,模型需要大学 id,而不是名称。因此,规则是此字段只能存储一个整数,并在您选择预先输入的结果之一后返回验证错误。

<?= $form->field($model, 'university_id')->widget(TypeaheadBasic::classname(), [
'data' => ArrayHelper::map(University::find()->all(),'id','uni_name'),
'pluginOptions' => ['highlight' => true],
'options' => ['placeholder' => 'Filter as you type ...'],
]); ?>

我希望有人可以帮助我了解是否有需要更改的设置,以便在保存时,用户友好的“uni_name”数据会更改回 uni“id”。

更新:
由于“Insane Skull”,我使代码部分工作。


新代码是:
<?= $form->field($model, 'name')->widget(TypeaheadBasic::classname(), [
'data' => ArrayHelper::map(University::find()->all(),'id','uni_name'),
'pluginOptions' => ['highlight' => true],
'options' => ['placeholder' => 'Filter as you type ...', 'id' => 'testID'],
'pluginEvents' => [
'typeahead:select' => new yii\web\JsExpression("function(event, ui) { $('#testing123').val(ui.item.id); }"),
]
]); ?>

<?= Html::activeHiddenInput($model, 'university_id', array ('id' => 'testing123'))?>

现在我不幸收到错误:
方法 yii\web\JsExpression::__toString() 必须返回一个字符串值

最佳答案

我宁愿使用 Select2而不是 Typeahead,您基本上是在尝试实现 Select2 上已经存在的功能,但使用 Typeahead。

<?= $form->field($model, 'university_id')->widget(Select2::classname(), [
'data' => ArrayHelper::map(University::find()->all(),'id','uni_name'),
'options' => ['placeholder' => 'Filter as you type ...'],
]); ?>

关于yii2 Kartik-V Typeahead Basic 自动完成名称但存储整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32644687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com