Vladislav
модель
The Ant
нельзя
Vladislav
а если модель сериализовать? http://php.net/manual/ru/language.oop5.serialization.php
The Ant
то можно
Vladislav
зашебись... тогда опробуем)
The Ant
чота ты там не то явно делаешь. пересмотри пока не поздна ))
Vladislav
Почему?)
Vladislav
Ну надо посмотреть какрв получится результат сериализации, а так мне либо передавать кучу параметров, либо отправлять сериализованный объект
👻
xml еще можно
Витебск 01
как засунуть в find регулярку: ^[^\D][\d-]+$ ?
Павел
А кто тебе вообще сказал что туда можно регулярку засунуть?
Павел
Что за БД?
Yurii
пардон сразу за идиотизм, но никак не допру.
почему $id = 'Array'
как туда всучить само значение?
$query = new Query;
$query->select('AUTO_INCREMENT')
->from('information_schema.TABLES')
->where("TABLE_SCHEMA = '".$dbName."'")
->andWhere("TABLE_NAME = '".$this->tableName()."'");
$result = $query->all();
$id = array_shift($result);
Yurii
пробовал кучу разных вариантов, результат один и тот же 😢
👻
эм а $model->primaryKey не ?
👻
и не all а one
👻
если уже на то пошло
👻
есть еще lastInserId помоему
👻
во всяком случае было в yii1
Yurii
есть еще lastInserId помоему
говорю же, нужно предугадать следующий, а не узнать последний что инсертился. запрос выше это и делает. мускуль даёт нужный результат. а вот в переменную записывается 'Array', как бы я его не пытался преобразовать, понимаю что это должно изи делаться, но вот чет нихрена не выходит
👻
ну так +1
👻
если нагрузка не большая
Yurii
ну так +1
не)) следующий автоинкримент не всегда +1
👻
ну это от нагрузки зависит
👻
ну а так должен быть one
Yurii
если к примеру удалить запись с айди 9, и потом попытаться создать новую, у него уже будет айди 10
Yurii
тоесть +2
Yurii
ну а так должен быть one
one тоже array возвращает не пойму почему, по идее первый элемент должен, как и array_shift
👻
Column вместо селект попробуй
Yurii
Column вместо селект попробуй
с ним получаю эксепшн (
exception 'yii\base\ErrorException' with message 'Call to a member function getQueryBuilder() on string'
Павел
Павел
Это системная база зачем вообще туда лезть?
Yurii
Зачем предугадывать?
чтобы в $model->image сохранить название пикчи уже с id записи
вида article_1_{timestamp}.png
Павел
Нахрен этот изврат?
Павел
Что тебе даст id модели в названии?
Yurii
Павел
Геморрой скорее
Yurii
Геморрой скорее
это тоже. но дело не в самом запросе, а как преобразовать результат из запроса, чтобы он записался в переменную в виде строки иль числа
Павел
Результат запроса ты не преобразовывает, а занимаешься вангованием
Павел
Смысл если можно сначала создать запись, а потом сохранить название картинки там, уже зная id
Yurii
Yurii
лишнее действие
Павел
А запрос для предсказания id он конечно не лишний
Павел
Какие возможности yii ты щупаешь? По моему фигнёй ты занимаешься
Павел
Ты уже знаешь как результат запроса записывается в переменную. Если ты не понимаешь в каком формате возвращаются данные сделай var_dump и погляди
Yurii
Павел
Ты с массивами умеешь работать?
Павел
У тебя ассоциативный массив
Yurii
видимо не очень, пробовал имплоад, и эррейшифт
Yurii
а для ассоциативных видимо не пдоходит этот вариант
Павел
Вспоминается фильм "горячие головы"
Yurii
Yurii
циклом пройтись? foreach($array as $key => $value)
{
$mykey = $value;
}
Павел
Я бот-поисковик
http://www.php.su/learnphp/vars/?arrays
Yurii
ой кажется я понял..
Павел
Yurii
Павел
О том и речь
Yurii
вуху
$id = $query->one();
$id = $id['AUTO_INCREMENT'];
Yurii
спасибо за наведение на светлую мысль, все было куда проще
Павел
Ещё проще вернуть само значение прямо из запроса
Павел
И не делать лишних присваиваний
Yurii
Yurii
нашел как сделать средствами йии таки
Yurii
вместо $query->one() нужно было использовать $query->scalar()
Артем
Здарова всем. Вопрос по датапровайдеру. Решил заюзать SqlDataProvider. В гриде вверху поля для поиска. Значения поиска как я понимаю попадают в Yii::$app->request->queryParams
Вот код:
$searchModel = new FlowerSearch();
$dataProvider = new SqlDataProvider([
"sql"=>"SELECT f.*,u.username,u.firstname,u.lastname FROM flower AS f INNER JOIN (SELECT * FROM order WHERE NOW()-date_create>900) AS o ON o.flower_id=f.id INNER JOIN user AS u ON u.id=f.user_id",
"params"=>Yii::$app->request->queryParams['FlowerSearch']]);
Результат получается не верный, так как используются алиасы в запросе. Как мне добавить правильный params чтоб получать результаты поиска в гриде?
Артем
В оф. документации есть пример :
'sql' => 'SELECT * FROM user WHERE status=:status',
'params' => [':status' => 1],
Но тут все просто, так как параметры статичны.
Артем
Если я добавлю например по аналогии WHERE id=:id и тд. то результат запроса будет пустым, так как по умолчанию там ничего не передается
Артем
Как быть в таких случаях? Хреновертить функцию которая будет возвращать последнюю часть sql-запроса(все что после WHERE). Как то не камильфо
Maxim
а где у тебя в запросе хоть один параметер?
Артем
"params"=>Yii::$app->request->queryParams['FlowerSearch']]);
Maxim
в самом SQL то где? к чему этот params биндить?
Артем
Короче на чистом SQL делать? я думал там че то по красоте зашито прикольное
Артем
Мде.. ну оки) спасибо
Maxim
собирай запрос QueryBuilderом например.
if(isset($params['id']))
$qb->andWhere(['id' => $params['id']])
Артем
там сложновато будет т.к. внутри еще один селект