teliasorg / yii2-autocomplete-ajax
通过简单的搜索模型属性模型ID。由 keygenqt/yii2-autocomplete-ajax 衍生
dev-master
2016-09-06 20:52 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-23 12:23:37 UTC
README
这是 AutocompleteAjax 小部件,也是针对 Autocomplete | jQuery UI 的 Yii 2 增强包装。它是搜索模型属性模型ID的一种简单方式。
安装
推荐通过 composer 安装此扩展。
在你的 composer.json 文件中添加以下内容:
"require": {
"teliasorg/yii2-autocomplete-ajax": "*"
}
最新版本
该模块的最新版本为 v0.5.1 BETA。
用法
视图
use teliasorg\autocompleteAjax\AutocompleteAjax; // Normal select with ActiveForm & model <?= $form->field($model, 'user_id')->widget(AutocompleteAjax::classname(), [ 'multiple' => false, 'url' => ['ajax/search-user'], 'options' => ['placeholder' => 'Find by user email or user id.'] ]) ?>
控制器
class AjaxController extends Controller { public function actionSearchUser($term) { if (Yii::$app->request->isAjax) { $results = []; if (is_numeric($term)) { /** @var Tag $model */ $model = Tag::findOne(['id' => $term]); if ($model) { $results[] = [ 'id' => $model['id'], 'label' => $model['email'] . ' (model id: ' . $model['id'] . ')', ]; } } else { $q = addslashes($term); foreach(Tag::find()->where("(`email` like '%{$q}%')")->all() as $model) { $results[] = [ 'id' => $model['id'], 'label' => $model['email'] . ' (model id: ' . $model['id'] . ')', ]; } } echo Json::encode($results); } } }
许可协议
yii2-autocomplete-ajax 发布在 BSD 3-Clause 许可协议下。有关详细信息,请参阅打包的 LICENSE.md 文件。