
Crestoff
21.01.2018
07:31:55
именно то что тебе нужно.
у меня отлично работает

mrG1K
21.01.2018
07:37:06
Спасиб )
посмотрю, оказывается в его прошлом расширении это тоже есть )
Yii2 ManyToMany Behavior
я его как раз юзаю иногда )

Google

Crestoff
21.01.2018
07:44:30
ну там почитай хорошо

Vladislav
21.01.2018
10:14:53
Здравствуйте, комрады. Можно-ли передать модель через json и получить его? И как?

Павел
21.01.2018
10:16:22
Кого его?

Vladislav
21.01.2018
10:16:52
модель

Ad.x ??
21.01.2018
10:20:46
нельзя

Vladislav
21.01.2018
10:22:35
а если модель сериализовать? http://php.net/manual/ru/language.oop5.serialization.php

Ad.x ??
21.01.2018
10:23:14
то можно

Vladislav
21.01.2018
10:24:13
зашебись... тогда опробуем)

Ad.x ??
21.01.2018
10:25:06
чота ты там не то явно делаешь. пересмотри пока не поздна ))

Vladislav
21.01.2018
10:28:27
Почему?)
Ну надо посмотреть какрв получится результат сериализации, а так мне либо передавать кучу параметров, либо отправлять сериализованный объект

?
21.01.2018
10:38:03
xml еще можно

Aziz
21.01.2018
10:40:32
как засунуть в find регулярку: ^[^\D][\d-]+$ ?

Google

Павел
21.01.2018
10:47:37
А кто тебе вообще сказал что туда можно регулярку засунуть?
Что за БД?

Yury
21.01.2018
11:05:09
пардон сразу за идиотизм, но никак не допру.
почему $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);
пробовал кучу разных вариантов, результат один и тот же ?

?
21.01.2018
11:06:05
эм а $model->primaryKey не ?
и не all а one
если уже на то пошло

Yury
21.01.2018
11:06:29

?
21.01.2018
11:07:33
есть еще lastInserId помоему
во всяком случае было в yii1

Yury
21.01.2018
11:07:57
есть еще lastInserId помоему
говорю же, нужно предугадать следующий, а не узнать последний что инсертился. запрос выше это и делает. мускуль даёт нужный результат. а вот в переменную записывается 'Array', как бы я его не пытался преобразовать, понимаю что это должно изи делаться, но вот чет нихрена не выходит

?
21.01.2018
11:10:23
ну так +1
если нагрузка не большая

Yury
21.01.2018
11:10:55
ну так +1
не)) следующий автоинкримент не всегда +1

?
21.01.2018
11:11:06
ну это от нагрузки зависит
ну а так должен быть one

Yury
21.01.2018
11:11:28
если к примеру удалить запись с айди 9, и потом попытаться создать новую, у него уже будет айди 10
тоесть +2

Google

?
21.01.2018
11:13:44
Column вместо селект попробуй

mrG1K
21.01.2018
11:15:18

Yury
21.01.2018
11:17:36
Column вместо селект попробуй
с ним получаю эксепшн (
exception 'yii\base\ErrorException' with message 'Call to a member function getQueryBuilder() on string'

Павел
21.01.2018
11:38:37
Это системная база зачем вообще туда лезть?

Yury
21.01.2018
11:39:26
Зачем предугадывать?
чтобы в $model->image сохранить название пикчи уже с id записи
вида article_1_{timestamp}.png

Павел
21.01.2018
11:40:16
Нахрен этот изврат?
Что тебе даст id модели в названии?

Yury
21.01.2018
11:41:14

Павел
21.01.2018
11:41:26
Геморрой скорее

Yury
21.01.2018
11:42:05
Геморрой скорее
это тоже. но дело не в самом запросе, а как преобразовать результат из запроса, чтобы он записался в переменную в виде строки иль числа

Павел
21.01.2018
11:46:30
Результат запроса ты не преобразовывает, а занимаешься вангованием

Павел
21.01.2018
11:46:58
Смысл если можно сначала создать запись, а потом сохранить название картинки там, уже зная id

Yury
21.01.2018
11:53:26
лишнее действие

Павел
21.01.2018
11:54:40
А запрос для предсказания id он конечно не лишний

Yury
21.01.2018
11:55:49

Павел
21.01.2018
11:56:40
Какие возможности yii ты щупаешь? По моему фигнёй ты занимаешься
Ты уже знаешь как результат запроса записывается в переменную. Если ты не понимаешь в каком формате возвращаются данные сделай var_dump и погляди

Yury
21.01.2018
11:59:17

Google

Павел
21.01.2018
11:59:45
Ты с массивами умеешь работать?
У тебя ассоциативный массив

Yury
21.01.2018
12:00:06
видимо не очень, пробовал имплоад, и эррейшифт
а для ассоциативных видимо не пдоходит этот вариант

Павел
21.01.2018
12:00:40
Вспоминается фильм "горячие головы"

Yury
21.01.2018
12:01:07
циклом пройтись? foreach($array as $key => $value)
{
$mykey = $value;
}

Павел
21.01.2018
12:03:29
Я бот-поисковик
http://www.php.su/learnphp/vars/?arrays

Yury
21.01.2018
12:04:00
ой кажется я понял..

Admin
ERROR: S client not available

Павел
21.01.2018
12:04:07

Yury
21.01.2018
12:04:19

Павел
21.01.2018
12:04:52
О том и речь

Yury
21.01.2018
12:06:04
вуху
$id = $query->one();
$id = $id['AUTO_INCREMENT'];
спасибо за наведение на светлую мысль, все было куда проще

Павел
21.01.2018
12:06:52
Ещё проще вернуть само значение прямо из запроса
И не делать лишних присваиваний

Yury
21.01.2018
12:08:14
нашел как сделать средствами йии таки
вместо $query->one() нужно было использовать $query->scalar()

Google


49576
21.01.2018
12:32:18
Здарова всем. Вопрос по датапровайдеру. Решил заюзать 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
21.01.2018
12:37:17
а где у тебя в запросе хоть один параметер?

49576
21.01.2018
12:37:54
"params"=>Yii::$app->request->queryParams['FlowerSearch']]);

Maxim
21.01.2018
12:38:18
в самом SQL то где? к чему этот params биндить?

49576
21.01.2018
12:39:01
Короче на чистом SQL делать? я думал там че то по красоте зашито прикольное
Мде.. ну оки) спасибо

Maxim
21.01.2018
12:39:57
собирай запрос QueryBuilderом например.
if(isset($params['id']))
$qb->andWhere(['id' => $params['id']])

49576
21.01.2018
12:41:44
там сложновато будет т.к. внутри еще один селект
селект в селекте джойнятся друг с другом)
мать его громоздко получается

Konstantin
21.01.2018
12:54:46
http://shot.hsdn.org/UxYdBlT0
почему то фанситри засовывает в последний элемент 2 уровня элементы третего уровня которые должны быть в другом узле 2 уровня

Павел
21.01.2018
13:12:06

49576
21.01.2018
13:12:28
та уже поговнокодил)
public function flowerParams($params)
{
print_r($params);
$r=' WHERE 1=1';
foreach ($params as $p=>$key)
{
if ($key!=null)
$r.=" AND f.".$p."='".$key."'";
}
return $r;
}
/**
* Lists all Flower models.
* @return mixed
*/
public function actionIndex()
{
$searchModel = new FlowerSearch();
$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".$this->flowerParams(Yii::$app->request->queryParams['FlowerSearch']);

Павел
21.01.2018
13:12:58
Зачем ты ваще yii взял?
Php4 это больше чем достаточно для тебя