Вот все ошибка которые вылетают в консоли:
GET https://cart/city-list?q=lol 500
jquery.js:7
send @ jquery.js:7
ajax @ jquery.js:7
transport @ select2.full.js:3582
request @ select2.full.js:3624
AjaxAdapter.query @ select2.full.js:3661
MinimumInputLength.query @ select2.full.js:3937
(anonymous) @ select2.full.js:598
(anonymous) @ select2.full.js:5669
Observable.invoke @ select2.full.js:655
Observable.trigger @ select2.full.js:645
Select2.trigger @ select2.full.js:5827
(anonymous) @ select2.full.js:5621
Observable.invoke @ select2.full.js:655
Observable.trigger @ select2.full.js:649
Search.handleSearch @ select2.full.js:2173
(anonymous) @ select2.full.js:598
(anonymous) @ select2.full.js:2130
dispatch @ jquery.js:6
v.handle @ jquery.js:6
GET запрос q=loll это запрос lol (он есть в БД)
Смотрел в инете нашел случаи ошибки 500 от ajax пишут что везде виновата transport function в ajax. У меня эта функция выглядит так:
Код: Выделить всё
transport: function (params, success, failure) {
var $request = $.ajax(params);
$request.then(success);
$request.fail(failure);
return $request;
}
Моя Вьюшка:
Код: Выделить всё
echo $form->field($model3, 'name', ['template' => "{label}\n{input}"])->widget(Select2::classname(), [
'options' => ['multiple'=>true, 'placeholder' => 'Поиск ...'],
'pluginOptions' => [
'allowClear' => true,
'minimumInputLength' => 3,
'ajax' => [
'url' => $url,
'type' =>"GET",
//'contentType' => 'application/json; charset=utf-8',
'dataType' => 'json',
'data' => new JsExpression('function(params) { return {q:params.term}; }'),
],
'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
'templateResult' => new JsExpression('function(name) { return name.text; }'),
'templateSelection' => new JsExpression('function (name) { return name.text; }'),
],
])->label('Поиск категории');
Код: Выделить всё
public function actionCityList($q = null, $id = null) {
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$out = ['results' => ['id' => '', 'text' => '']];
if (!is_null($q)) {
$query = new Query;
$query = Category::find()->select('id, name')
->where(['Like', 'name', $q])
->limit(20)->all();
$command = $query->createCommand();
$data = $command->queryAll();
$out['results'] = array_values($data);
}
elseif ($id > 0) {
$out['results'] = ['id' => $id, 'text' => Category::find($id)->select('name')->all()];
}
return $out;
}