katrik select2 ajax Проблема выдает ошибку 500

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
sarmetr
Сообщения: 1
Зарегистрирован: 2020.02.05, 19:59

katrik select2 ajax Проблема выдает ошибку 500

Сообщение sarmetr »

Здравствуйте уважаемые программиста и администраторы. У меня проблема. Установил на сайт дополнение select2 ajax от katrik. Представляет из себя живой поиск по БД. Установка вроде прошла успешно через, а вот с настройкой беда. Вьюшку настроил поле поиска есть, Controller настроил по инструкции с поправкой на ActiveRecord. Но при наборе текста в в поле поиска вылетает ошибка 500 "Failed to load resource: the server responded with a status of 500 ()" (смотрю в консоле) . Судя по ошибке проблема с ajax. Вьюшка данные передает в GET а вот в ajax проблема.
Вот все ошибка которые вылетают в консоли:

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;
} 
И ошибка выпадает на сроку var $request = $.ajax(params);. Что делать ума не приложу.

Моя Вьюшка:

Код: Выделить всё

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('Поиск категории');
Мой controller

Код: Выделить всё

 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;
}
Может кто что подскажет, в каком направлении копать ????

YurikVD
Сообщения: 9
Зарегистрирован: 2018.08.09, 12:52

Re: katrik select2 ajax Проблема выдает ошибку 500

Сообщение YurikVD »

"Мой controller" - не контроллер, а "action".
Не хватает в "GET https://cart/city-list?q=lol 500" имени сайта если "cart" - контроллер или имени контроллера если "cart" - имя сайта.
Какой "'url' => $url", задан?

Ответить