此代码段有效,它正确地将表产品和列名称中的数据设置为 YII 的引导预输入扩展的输入。
但是,我最终从具有大量数据的 Table Product 中编写了一个 SELECT ALL。
我们可以修改它,以便可以在用户输入事件上将 WHERE 条件添加到 DataProvider 中。根据输入的每个字母,然后可以触发一个新查询并且只检索数据的一个子集?
<?php
$dataProvider = new CActiveDataProvider('Product');
$dataArray = $dataProvider->getData();
$myarray = array();
foreach ($dataArray as $data){
array_push($myarray, CHtml::encode($data->name));
}
$this->widget('bootstrap.widgets.TbTypeahead', array(
'name' => 'typeahead',
'options'=>array(
'name'=>'typeahead',
'source'=>$myarray,
'items'=>4,
'matcher'=>"js:function(item) {
return ~item.toLowerCase().indexOf(this.query.toLowerCase());
}",
),
'htmlOptions'=>array('class'=>'search-query span3', 'placeholder'=>"Search" ),
)); ?>