Anonymous
Egor
Привет народ
Egor
Нужна помощь с yii, как вывести все статьи из определенной категории?http://pastebin.com/Kq2fwDB6
Egor
(я новичек в yii)
Egor
Хотя бы подскажите в чем ошибка?
Dmytro
в каком из action-ов нужно вывести?
Dmytro
Category::findOne($id) вместо Category::findAll($id)
Dmytro
или Category::find()->where(['id'=>$id])->one()
Egor
Я хочу чтобы на главной выводились категории, а при клике по категории показывало статьи этой категории
Dmytro
ну, тогда я уже выше написал, что нужно изменить в коде
Egor
public function actionCat($id) {
$articles = Category::findAll($id);
return $this->render('cat', ['articles'=>$articles]);
}
если делаю так, то при клике показывает массив с названием категории по которой кликнул
Dmytro
ну, так вы ищите все (findAll)
Dmytro
а надо findOne
Dmytro
Vladimir
Натолкните на мысль?
В таблице ссылки с вызовом модал окна, работает.
При сортировке таблицы ссылки уже не открывают модал.
Классы не меняются, джиэс тоже. Хз куда смотреть
Vladimir
Vladimir
Vladimir
Dmytro
у вас dom меняеться
Dmytro
не так обработчики надо вешать
Dmytro
$(document).on('click','.city-modal-btn', function(){});
Dmytro
ну, или не на document, а на что-то ниже, но точно на такой узел, который не "мутирует"
Vladimir
Dmytro
меняется
Dmytro
после сортировки -- мутирует таблица
Dmytro
я вам решения назвал -- дальше дело ваше
Vladimir
Понять охото %)
Dmytro
dom мутирует -- это факт
Dmytro
посмотрите, как yii вешает обработчики
Vladimir
Dmytro
https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.gridView.js#L240
Константин
/link@yetanotherstatsbot
Yet Another Stats (β)
https://yasb.exileed.com/telegram/chat/1001046156199
Anonymous
Всем привет. Есть вопрос
Выбираю данные вот так
$model = Niche::find()
->select('*')
->from('niche n')
->leftJoin('resource r', 'r.n_id = n.id')
->leftJoin('url u', 'u.r_id = r.id')
->where('n.slug = :slug', [':slug' => Yii::$app->request->get('s')])
->andWhere('r.uri = :uri', [':uri' => Yii::$app->request->get('u')])
->all();
В запрос из дебага выполнить в pma допустим, то возвращает все что нужно
Anonymous
print_r выдает только данные ниши
Anonymous
Как вытащить данные?
Ivan
print_r вам тут не поможет
Ivan
можно написать свою функцию debug и посмотреть что получается
Ivan
ну либо уже во вью вывести через foreach, если я привильно понял проблему
Амаль
$model->resource
Амаль
почитайте про связи hasOne hasMany Все станет понятно...
Anonymous
Читал
Anonymous
Но тут не пойму
Anonymous
Дело в том что в dbForge или PMA запрос, который я составил в Yii и вытащил из дебага
Anonymous
Возвращает полностью все что мне нужно из всех таблиц
Anonymous
Если же я работаю с этим в yii то не вижу данных из других таблиц
Anonymous
а только из одной
Ivan
а таблицы как связаны между собой? связь прописали, вот как раз hasOne/hasMany нужны для связи таблиц
Anonymous
В моделях
Anonymous
Вот например из можели ниши связьь
public function getResources()
{
return $this->hasMany(Resource::className(), ['n_id' => 'id']);
}
Амаль
И попробуй убрать select() вообще
Anonymous
Но я же делаю джоином
Амаль
Из цепочки
Anonymous
Anonymous
Попробую спс
Anonymous
Просто не понятно
Запрос то верный получается
SELECT * FROM niche n LEFT JOIN resource r ON r.n_id = n.id LEFT JOIN url u ON u.r_id = r.id WHERE (n.slug = 'foo') AND (r.uri = 'bar')
Амаль
Поищи в группе выше уже обсуждпли эту тему
Anonymous
Ок спс
Anonymous
Парни. А ->one делает limit 1 или все равно пробегает все записи но выводит только первую?
Амаль
Anonymous
Хотя я сам ведь могу допилить лимит в запросе и все
Амаль
Anonymous
Vasily
Лучше сам one() допилить. Ничего не поломается.
SiZE
SiZE
Additional limit may slow down such simple queries like:
SELECT * FROM ModelTable WHERE id = 1
I don't think automatic limit is appropriate here.
SiZE
У меня нет повода не доверять Климову
Vasily
На форуме есть топик по этому вопросу. Гуглится легко. Метод работает не так, как от него ждут. Основывать свое доверие на имени как-то не очень серьезно.
SiZE
SiZE
A single row of query result.
SiZE
как еще понятней это можно написать?
SiZE
возможно конечно стоит уточнить this is not use limit 1 =)
Vasily
Не оправдывайте кривоту реализации. Я спорить с вами не буду все равно. Возвращать первую строку дергая всю таблицу немного тупенько.
Амаль
стоило мб проверять есть ли сравнение по primaryKey если нет то добавлять LIMIT
SiZE
SiZE
Амаль
Вот в первой части был удобный метод финдБайПк
Амаль
бля написал как 1С программист