These are chat archives for yiisoft/yii2/rus

30th
Oct 2017
Punka
@Punka
Oct 30 2017 04:25

приветствую коллеги

KarmaBot
@KarmaBot
Oct 30 2017 04:25
@Punka, привет =)
Alexander Khan
@akhan-weltkind
Oct 30 2017 04:46

всем привет.
Если написать следующую строчку:

$this->redirect($url,301);

то пользователя перекинет по указанному адресу с методом GET
как сделать чтобы пользователя перекидывало на тот же адрес с методом POST. Предварительно добавив какие нибудь данные?

KarmaBot
@KarmaBot
Oct 30 2017 04:46
@akhan-weltkind, ну рассказывай. Как жизнь? :)
Alexey Samoylov
@russianlagman
Oct 30 2017 06:21
@akhan-weltkind через промежуточную страницу с автосабмит формой
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 06:45
привет человечьё
KarmaBot
@KarmaBot
Oct 30 2017 06:45
Приветствую тебя, @OligarchCat_twitter!
des1roer
@des1roer
Oct 30 2017 07:20
хей ё
а как проверить что в массиве массивов ест ь определенное значение через фугкцию а не через массив?
Vasily Belosloodcev
@bupy7
Oct 30 2017 07:23
Ребят, как дойти до холодильника?
Yaroslav Chernousov
@lavros
Oct 30 2017 07:34
ногами.
(можно руками)
или доползти.
Punka
@Punka
Oct 30 2017 07:35
@bupy7 с помощью алгоритма кротчайшего пути...
Vasily Belosloodcev
@bupy7
Oct 30 2017 07:36
Есть пример того, как ставить стопу?
Andrey Kushnarev
@andku83
Oct 30 2017 07:38
@bupy7 гугли как ставить стопу ))
Vasily Belosloodcev
@bupy7
Oct 30 2017 07:39
Сложно, есть без стелек?
Стельки это оверхэд.
Andrey Kushnarev
@andku83
Oct 30 2017 07:39
@KarmaBot есть без стелек?
что-то работать никакого настроения….
Punka
@Punka
Oct 30 2017 07:40
@andku83 понедельник же..
Daniel
@letto_daniel_twitter
Oct 30 2017 08:05
всем привет
KarmaBot
@KarmaBot
Oct 30 2017 08:05
Прувет, @letto_daniel_twitter!
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:07
народ, а кто-то встречал расширения для юии2, чтобы прикрутить к профилю пользователя соц сети и тащить фотку оттуда и отдавать туда?
инстраграмм интересует в частности и фэйсбук. еще вк
Vasily Belosloodcev
@bupy7
Oct 30 2017 08:08
yii2 social auth
Daniel
@letto_daniel_twitter
Oct 30 2017 08:08
на каждой странице есть data-toggle="modal" data-target="#Modal" (всплывающие окна) , как их можно сгруппировать в одном файле php и тянуть оттуда?
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:08
и еще - нужно определять местоположение юзера, если он браузер запустил на мобилке - то вообще через гпс?
@bupy7 про этот? https://github.com/dektrium/yii2-user/blob/master/docs/social-auth.md там инста нет.. :)
Vasily Belosloodcev
@bupy7
Oct 30 2017 08:12
Ну, я инсту сам добавлял.
В 2014 не нашел готового по инсте. Наверно, и сейчас нет.
Punka
@Punka
Oct 30 2017 08:13
там граватар
romanpan2
@romanpan2
Oct 30 2017 08:31
Ребят. привет
KarmaBot
@KarmaBot
Oct 30 2017 08:31
@romanpan2, привет =)
romanpan2
@romanpan2
Oct 30 2017 08:32
подскажите
как сделать сортировку по запросу ... exists
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:33
@romanpan2 подсказываем
тип существует или нет что ли?
romanpan2
@romanpan2
Oct 30 2017 08:33
да
т.е.
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:33
а логика какая?
romanpan2
@romanpan2
Oct 30 2017 08:34
рассказываю:
Есть товары.... таблица product. Есть таблица product_company. Так вот. В общем списке показываются все подряд, но как показывать Выше товары те, у которых есть предложения компаний... связываются через поле product_id. ))) Понятно рассказал?
Daniel
@letto_daniel_twitter
Oct 30 2017 08:42
есть ли нормальная статья где написано про редирект после авторизации гостя? а то в basic версии посмотрел вроде организован редирект "го хом" но когда авторизуешься остается на странице "login" сама страница пустая и никуда дальше ничего не происходит
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:45
@romanpan2 а по количеству если вывести?
сколько позиций предлагает компания
Punka
@Punka
Oct 30 2017 08:46
ну это просто
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:46
чем больше товаров предлагает компания - тем выше в выдаче.
Punka
@Punka
Oct 30 2017 08:46
это все знают
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:46
@letto_daniel_twitter я делал редирект недавно
Daniel
@letto_daniel_twitter
Oct 30 2017 08:46
@OligarchCat_twitter подскажешь как после авторизации и регистрации
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:47
@letto_daniel_twitter захватывай в скрытом поле урл юзвера, после авторизации или подтверждения почты кидай его туда
Daniel
@letto_daniel_twitter
Oct 30 2017 08:47
@OligarchCat_twitter и такой еще вопр. как скрыть страницу от пользователя (гостя)
Punka
@Punka
Oct 30 2017 08:47
Yii::$app->request->referrer
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:47
перед этим добавь колонку redirect
@Punka да там не все так просто как оказалось
romanpan2
@romanpan2
Oct 30 2017 08:48
@OligarchCat_twitter сейчас именно по количеству и сделал (а именно по количеству компаний, сколько компаний предлагает этот товарв), но вот трабл! Если компания имеет статус любой, кроме опубликовано, то все перемешивается((((( товары с ценами и товары без цен, так как компания не опубликована. Я хочу, что бы вверху были товары только с опубликованных компаний, а внизу нет в наличии
Andrey Kushnarev
@andku83
Oct 30 2017 08:50
@romanpan2 так пробовал?
->addOrderBy(new Expression(Company::find()
    ->where(...)
    ->exists()))
romanpan2
@romanpan2
Oct 30 2017 08:51
@andku83 воу воу воу !!!!!!!!!!!!!!!!!! не додумался... сейчас попробую
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:52
'rules' => [
                    [
                        'allow' => false,
                        'roles' => ['?'],
                    ],
                    [
                        'actions' => ['del', 'logout', 'change'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
Andrey Kushnarev
@andku83
Oct 30 2017 08:52
если так не сработает то можно еще:
->addSelect(['exists_company' => new Expression(Company::find()
    ->where(...)
    ->exists())])
->addOrderBy('exists_company')
romanpan2
@romanpan2
Oct 30 2017 08:53
@andku83 сейчас оба варианта попробую и отпишусь
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:54
в экшенах перечисляй чо можно
@andku83 а я искал искал такую штуку, помню что где-то встречал и не нашел :)
Andrey Kushnarev
@andku83
Oct 30 2017 08:56
@OligarchCat_twitter просто спросить нужно было))
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 08:59
@andku83 спасибо. занес в записную https://www.evernote.com/pub/nonamesss/yii :)
KarmaBot
@KarmaBot
Oct 30 2017 08:59
Спасибо (+1) для @andku83 принято! Текущая карма +92.
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 09:02
Если у кого какие-то интересные заметки, записи есть - кидайте. добавлю в блокнот, чтобы не потерялось
Denis
@head26
Oct 30 2017 09:03
всем привет
KarmaBot
@KarmaBot
Oct 30 2017 09:03
Будь как дома, @head26, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
Denis
@head26
Oct 30 2017 09:04
кучу манулов покажу
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 09:05
@head26 пушкин в душе? :)
Denis
@head26
Oct 30 2017 09:05
@OligarchCat_twitter этож песня
киш переделанный
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 09:17

прям в интернете сайт гитхаба
крутые человеки в нем
и днем и ночью @andku ученный
ответит ночью, также днем

Там на неведомых вопросах
подымет @leto бурный спам,
в замысловатеньких запросах
@Punka ответит нам и вам

RAPOS
@RAPOS
Oct 30 2017 09:20
Всем привет как переделать запрос CDbCriteria c Yii1 на Yii2 ??
KarmaBot
@KarmaBot
Oct 30 2017 09:20
@RAPOS, здравствуй.
Denis
@head26
Oct 30 2017 09:21
@RAPOS конкретизируй, запрос кинь
Andrey Kushnarev
@andku83
Oct 30 2017 09:21
@OligarchCat_twitter сколько моего кода в твоем блокноте)))
насчет длины телефона, https://github.com/Borales/yii2-phone-input/blob/master/src/PhoneInputValidator.php - эта штука получше будет, там же есть и phoneInput для всех стран
Denis
@head26
Oct 30 2017 09:23
ахаха
@andku83 пора бабки за инфу брать)
romanpan2
@romanpan2
Oct 30 2017 09:36
@andku83 ->addOrderBy(new Expression(Company::find()
->where(...)
->exists()))
@andku83 это хорошо работает, только как добавить SORT_ASC или SORT_DESC
`code`->addOrderBy(new Expression(Company::find()
->where(...)
->exists())) code
Andrey Kushnarev
@andku83
Oct 30 2017 09:38
@romanpan2 само-собой что нужно, ну дулжен же ты хоть немножко подумать))
romanpan2
@romanpan2
Oct 30 2017 09:38
@andku83 ок))) спасибо
KarmaBot
@KarmaBot
Oct 30 2017 09:38
Спасибо (+1) для @andku83 принято! Текущая карма +93.
romanpan2
@romanpan2
Oct 30 2017 09:39
@andku83 как спасибо добавить к карме?
Andrey Kushnarev
@andku83
Oct 30 2017 09:39
для того чтобы код хорошо форматировался в перд строке и после ставь обратные кавычки `
@romanpan2 так ты добавил к карме
пишешь имя и «спасибо» в каком-то виде (tnx. thank. спс...)
KarmaBot
@KarmaBot
Oct 30 2017 09:40
@andku83, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
romanpan2
@romanpan2
Oct 30 2017 09:41
@andku83 thank
Denis
@head26
Oct 30 2017 09:41
))
Andrey Kushnarev
@andku83
Oct 30 2017 09:41
бот устал)
romanpan2
@romanpan2
Oct 30 2017 09:41
@andku83 похоже на то
Andrey Kushnarev
@andku83
Oct 30 2017 09:42
он иногда не пишет, но при этом может считать
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 09:44
@andku83 есть еще, но там слишком личное :)
а чем можно сконвертить win в utf8 на линуксе?
Andrey Kushnarev
@andku83
Oct 30 2017 09:46
а пхпшторм не конвертит?
Alexey Samoylov
@russianlagman
Oct 30 2017 09:47
iconv
find --exec
если вкратце :-)
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 09:50
не.. так открывает..
Punka
@Punka
Oct 30 2017 10:01
чем можно открыть текстовый файл который весит 2.5 гига?
Denis
@head26
Oct 30 2017 10:02
@Punka lister в тотал коммандере попробуй
RAPOS
@RAPOS
Oct 30 2017 10:03
@head26
    public function getCriteriaRatingByType($type)
    {
        $criteria = new CDbCriteria;

        if ($type == 6) {
            $criteria->select = '*, case
                            when t.`rating_workday` >= 10 THEN t.rating_value*1000
                            else rating_value
                            end as rating_value_test';
        } else {
            $criteria->select = '*, rating_value as rating_value_test';
        }

        $criteria->join = 'LEFT OUTER JOIN `admin_user` `rxUser` ON (`t`.`rx_user` = `rxUser`.`uid`)';

        $criteria->compare('rx_ratingtype', $type);
        $criteria->compare('rating_value', $this->rating_value);

        $sort = 'rating_value_test DESC';

        if (isset($_POST['rating_date'])) {
            $this->resetScope();
            $criteria->addCondition("rating_date='" . $_POST['rating_date'] . "'");
            if ($_POST['rating_date'] >= '1506') {
                $sort .= ', rating_workday DESC, rx_user ASC';
            }
        }
        $criteria->addCondition('t.rx_user in (select uid from admin_user WHERE admin_user.role = "USER" and admin_user.role_status = 3)');

        // исключение из рейтинга определенных пользователей
        $criteria->addNotInCondition('t.rx_user', array('896'));

        if (isset($_POST['rx_area']) and (Yii::app()->user->role == User::ROLE_ADMIN or Yii::app()->user->role == User::ROLE_MODERATOR)) {
            $criteria->addCondition("rx_area=" . $_POST['rx_area']);
            return array($criteria, $sort);
        } else {
            if (Yii::app()->user->rx_area) {
                $criteria->addCondition("rx_area=" . Yii::app()->user->rx_area);
                return array($criteria, $sort);
            } else {
                $criteria->addCondition("rx_area=1");
                return array($criteria, $sort);
            }
        }
    }
KarmaBot
@KarmaBot
Oct 30 2017 10:03
@RAPOS, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Punka
@Punka
Oct 30 2017 10:03
@head26 он через блокнот открыть пытается
@head26 блокнотом такое не открыть
Denis
@head26
Oct 30 2017 10:04
@Punka так ты выбери там что бы не через блокнот открывал а через lister
@Punka f3 жми
Punka
@Punka
Oct 30 2017 10:04
@head26 ого, спасибо )
KarmaBot
@KarmaBot
Oct 30 2017 10:04
Спасибо (+1) для @head26 принято! Текущая карма +20.
Denis
@head26
Oct 30 2017 10:04
@Punka открыло?
Punka
@Punka
Oct 30 2017 10:04
@head26 ага
Denis
@head26
Oct 30 2017 10:05
@Punka ок
Denis
@head26
Oct 30 2017 10:05
что происходит вообще
RAPOS
@RAPOS
Oct 30 2017 10:05
@head26 Я уже всё перепробовал, не могу заставить выполнить запрос
@head26 Это нужно переделать на Yii2
Yii2 basic, авторизация и регистрация через БД
@letto_daniel_twitter а что там особенного?
Daniel
@letto_daniel_twitter
Oct 30 2017 10:08
passwordResetToken-html.php в этом файле ошибка , ругается на } else {
throw new ViewNotFoundException("The view file does not exist: $viewFile");
не могу понять в чем проблема
Denis
@head26
Oct 30 2017 10:10
ну ты ошибку то хоть кинь
че за дела то
Daniel
@letto_daniel_twitter
Oct 30 2017 10:10
image.png
RAPOS
@RAPOS
Oct 30 2017 10:10
@head26 я уже переделал на Query но не работает Invalid argument supplied for foreach()
Denis
@head26
Oct 30 2017 10:11
@letto_daniel_twitter нет утебя файла отображения, либо не там лежит, либо не то подключил
@letto_daniel_twitter вьюхи нет короче
@RAPOS неправильно значит переделал
@RAPOS или покажи что переделал и на что ругается там
Daniel
@letto_daniel_twitter
Oct 30 2017 10:13
@head26 спасибо буду искать
KarmaBot
@KarmaBot
Oct 30 2017 10:13
Спасибо (+1) для @head26 принято! Текущая карма +21.
RAPOS
@RAPOS
Oct 30 2017 10:16

@head26 вот проще

    /**
     * @param $type
     * @return array
     */
    public function getCriteriaRatingByType($type)
    {
        $query = new Query();

        if ($type == 6) {
            $query->select = '*, case
                            when rating.`rating_workday` >= 10 THEN rating.rating_value * 1000
                            else rating_value
                            end as rating_value_test';
        } else {
            $query->select = '*, rating_value as rating_value_test';
        }
        $query->from = 'rating';
        $br = $query->createCommand();
        print_r($br);
    }

Такая же ошибка

Denis
@head26
Oct 30 2017 10:17
а разве можно делать так select = '';?
@RAPOS public $this select ( $columns, $option = null )
читайте доку епт
делай так select(["*", ""])
RAPOS
@RAPOS
Oct 30 2017 10:21
@head26 сейчас попробую ;-)
Denis
@head26
Oct 30 2017 10:22
селект это просто метод, который принимает параметры и возвращается $this, этот же объект.
для того что бы ты мог делать select()->from()->where() или че там
getCriteriaRatingByType назови getRatingByType, нафиг эту критерию
и типы вынеси в константы )
RAPOS
@RAPOS
Oct 30 2017 10:27
@head26 дак итак ))) Братуха Спасибо тебе )) Помогло. :-) Тут большой проект с Yii 1 на Yii 2 надо перетянуть, плюс на Yii 1 писал начинающий программист :-D и сделал всё через жопу )))
@head26 Большое спасибо :-)
KarmaBot
@KarmaBot
Oct 30 2017 10:27
Спасибо (+1) для @head26 принято! Текущая карма +22.
Denis
@head26
Oct 30 2017 10:27
пожалуйста
RAPOS
@RAPOS
Oct 30 2017 10:29
@head26 Ураааааааааааааааааааа ))))
@head26 Слушай, а как Query добавить with ? уже имеющийся
    public function getAdminUser()
    {
        return $this->hasOne(AdminUser::className(), ['uid' => 'rx_user']);
    }
К тому, что выше?
romanpan2
@romanpan2
Oct 30 2017 10:32
@andku83 подскажи как мне в этом запросе sort_desc. кучу документации перерыл, а не могу найти информацию(((
Andrey Kushnarev
@andku83
Oct 30 2017 10:35
@RAPOS тебе нужен with или join?
@romanpan2 в том запросе с Expression?
romanpan2
@romanpan2
Oct 30 2017 10:36
@andku83 да(
Andrey Kushnarev
@andku83
Oct 30 2017 10:36
до чего ты дошел?
я думал ты добавил, а то ты спрашивал)))
Denis
@head26
Oct 30 2017 10:37
@RAPOS чет я не понял что надо
Andrey Kushnarev
@andku83
Oct 30 2017 10:38
@romanpan2 попробуй
->addOrderBy([new Expression(Company::find()
    ->where(...)
    ->exists()) => SORT_DESC])
romanpan2
@romanpan2
Oct 30 2017 10:39
@andku83 Illegal offset type
Andrey Kushnarev
@andku83
Oct 30 2017 10:40
значит используй мой второй вариант
->addSelect(['exists_company' => new Expression(Company::find()
    ->where(...)
    ->exists())])
->addOrderBy(['exists_company' => SORT_DESC])
romanpan2
@romanpan2
Oct 30 2017 10:40
@andku83 второй вариант не выдал разницы никакой. сейчас еще раз попробую
RAPOS
@RAPOS
Oct 30 2017 10:53
@andku83 желательно With
Andrey Kushnarev
@andku83
Oct 30 2017 10:54
@RAPOS
->with([
    'products' => function (ProductQuery $query){
        $query->active()->orderBy('stock_sorting');
    },
])
RAPOS
@RAPOS
Oct 30 2017 10:55

@head26 Как к этому

    public function getCriteriaRatingByType($type)
    {
        $query = new Query();

        if ($type == 6) {
            $query->select = '*, case
                            when rating.`rating_workday` >= 10 THEN rating.rating_value * 1000
                            else rating_value
                            end as rating_value_test';
        } else {
            $query->select = '*, rating_value as rating_value_test';
        }
        $query->from = 'rating';
        $br = $query->createCommand();
        print_r($br);
    }

Добавить это

public function getAdminUser()
    {
        return $this->hasOne(AdminUser::className(), ['uid' => 'rx_user']);
    }
@andku83 нее ты не так понял, пример выше.
Andrey Kushnarev
@andku83
Oct 30 2017 10:56
@RAPOS убери из ->select строку, там должен быть объект
RAPOS
@RAPOS
Oct 30 2017 10:57
@andku83 Я уже это переделал.
Andrey Kushnarev
@andku83
Oct 30 2017 10:57
ну так к этому - пиши соответственное
RAPOS
@RAPOS
Oct 30 2017 10:58
@andku83 ладно я не стал заморачиваться с with сделал через join
public static function search($type, $limit = 500)
    {
        list($sql, $sort) = self::getRatingByType($type);
        $provider  = new ActiveDataProvider([
            'query' => $sql,
            'pagination' => [
                'pageSize' => $limit,
            ],
            'sort' => [
                'defaultOrder' => $sort,
            ],
        ]);

        return $provider;
    }

    /**
     * @param $type
     * @return array
     */
    public function getRatingByType($type)
    {
        $query = new Query();

        if ($type == 6) {
            $query->select(['*', 'case
                            when rating.`rating_workday` >= 10 THEN rating.rating_value * 1000
                            else rating_value
                            end as rating_value_test']);
        } else {
            $query->select(['*', 'rating_value as rating_value_test']);
        }
        $query->from(['rating']);
        $query->join('LEFT OUTER JOIN', 'admin_user', '`rating`.`rx_user` = `admin_user`.`uid`');
        $query->join('LEFT OUTER JOIN', 'admin_profile', '`rating`.`rx_user` = `admin_profile`.`user_id`');

        $query->andFilterCompare('rx_ratingtype', $type);
        $query->andFilterCompare('rating_value', $this ? $this->rating_value : null);

        $sort = 'rating_value_test DESC';

        if (isset($_POST['rating_date'])) {
            //$this->loadDefaultValues();
            $query->andWhere("rating_date = '" . $_POST['rating_date'] . "'");
            if ($_POST['rating_date'] >= '1506') {
                $sort .= ', rating_workday DESC, rx_user ASC';
            }
        }
        $query->andWhere('rating.rx_user in (select uid from admin_user WHERE admin_user.role = "USER" and admin_user.role_status = 3)');

        // исключение из рейтинга определенных пользователей
       // $criteria->addNotInCondition('t.rx_user', array('896'));

        if (isset($_POST['rx_area']) and (Yii::$app->user->identity->role == AdminUser::ROLE_ADMIN or Yii::$app->user->identity->role == AdminUser::ROLE_MODERATOR)) {
            $query->andWhere("rx_area=" . $_POST['rx_area']);
            return [$query, $sort];
        } else {
            if (Yii::$app->user->identity->rx_area) {
                $query->andWhere("rx_area = " . Yii::$app->user->identity->rx_area);
                return [$query, $sort];
            } else {
                $query->andWhere("rx_area = 1");
                return [$query, $sort];
            }
        }
    }
KarmaBot
@KarmaBot
Oct 30 2017 10:58
@RAPOS, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Andrey Kushnarev
@andku83
Oct 30 2017 10:59

, плюс на Yii 1 писал начинающий программист :-D и сделал всё через жопу )))

появился еще один начинающий, который делает так же)))

$query->andWhere("rating_date = '" . $_POST['rating_date'] . "'");
вот это супер
Denis
@head26
Oct 30 2017 11:03
пхах
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 11:06
ну хоть так :)
RAPOS
@RAPOS
Oct 30 2017 11:09
@andku83 братан я перетаскиваю и исправляю проблемы по мере их поступления )))
@andku83 задача была первая, что бы заработало.
@andku83 Вторая править быдло код )))
Andrey Kushnarev
@andku83
Oct 30 2017 11:10
@RAPOS нуwith то ты таким способом не получишь
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 11:10
третья - закрыть проект как нерентабельный :)
RAPOS
@RAPOS
Oct 30 2017 11:10
@andku83 да это я понял, я хочу попробовать на ActiveQuery всё переделать
Misha
@sallfris
Oct 30 2017 11:11
@RAPOS зачем? только потому что yii2 ?
RAPOS
@RAPOS
Oct 30 2017 11:11
@sallfris не люблю длинные sql ))))
Andrey Kushnarev
@andku83
Oct 30 2017 11:13

>

$query->andWhere("rating_date = '" . $_POST['rating_date'] . "'");

вот это не то что не активКвери, так вдобавок еще и sql-иньекция

Denis
@head26
Oct 30 2017 11:15
недавно очередной деятель греф выдал тему что года через 3 программисты не нужны будут, типо все само будет писаться. До этого еще какой-то деятель лет 7 назад говорил что через примерно через 10 лет программисты не нужны будут
Misha
@sallfris
Oct 30 2017 11:15
@andku83 и не только там
Denis
@head26
Oct 30 2017 11:15
как же они достали)
des1roer
@des1roer
Oct 30 2017 11:15
хей
Denis
@head26
Oct 30 2017 11:15
хо
des1roer
@des1roer
Oct 30 2017 11:16
а вот как я могу ипсользовать один класс для обработки данных?
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 11:16
народ, а вот раньше были в линуксе Badges - маленькие картинки - цепляешь к файлу или папке. щаз похерили их что ли?
Denis
@head26
Oct 30 2017 11:16
@des1roer как душе угодно)
des1roer
@des1roer
Oct 30 2017 11:16
т.е. пусть будет child extends parent
model = parent::findOne(1)
Denis
@head26
Oct 30 2017 11:17
0_о
des1roer
@des1roer
Oct 30 2017 11:17
model = (child) model
т.е. произвести пприведение модели
RAPOS
@RAPOS
Oct 30 2017 11:17

Мужики вот этот кусок кода не работает:

$query = new Query();
$query->select(['*', 'case when rating.`rating_workday` >= 10 THEN rating.rating_value * 1000
                            else rating_value
                            end as rating_value_test']);

Как переделать на нормальный лад?

Misha
@sallfris
Oct 30 2017 11:17
@des1roer ты фабрику чтоли изобретаешь?
des1roer
@des1roer
Oct 30 2017 11:17
ну я хочу существующие данные в другой модели использовать
Denis
@head26
Oct 30 2017 11:18
ааа
des1roer
@des1roer
Oct 30 2017 11:18
@RAPOS createCommand не забыл?
RAPOS
@RAPOS
Oct 30 2017 11:20
@des1roer он там не нужен. Там большой кусок кода, я спрашиваю про конкретную конструкцию SELECT
des1roer
@des1roer
Oct 30 2017 11:20
или можно через $class->load($promoCode)
Misha
@sallfris
Oct 30 2017 11:20

@RAPOS ```
/**

 * Sets the SELECT part of the query.
 * @param string|array|Expression $columns the columns to be selected.
 * Columns can be specified in either a string (e.g. "id, name") or an array (e.g. ['id', 'name']).
 * Columns can be prefixed with table names (e.g. "user.id") and/or contain column aliases (e.g. "user.id AS user_id").
 * The method will automatically quote the column names unless a column contains some parenthesis
 * (which means the column contains a DB expression). A DB expression may also be passed in form of
 * an [[Expression]] object.
 *
 * Note that if you are selecting an expression like `CONCAT(first_name, ' ', last_name)`, you should
 * use an array to specify the columns. Otherwise, the expression may be incorrectly split into several parts.
 *
 * When the columns are specified as an array, you may also use array keys as the column aliases (if a column
 * does not need alias, do not use a string key).
 *
 * Starting from version 2.0.1, you may also select sub-queries as columns by specifying each such column
 * as a `Query` instance representing the sub-query.
 *
 * @param string $option additional option that should be appended to the 'SELECT' keyword. For example,
 * in MySQL, the option 'SQL_CALC_FOUND_ROWS' can be used.
 * @return $this the query object itself
 */
public function select($columns, $option = null)

```

des1roer
@des1roer
Oct 30 2017 11:20
так выведи getRawSql, выполни в иде и смотри на че скл ругается
те может не селект а column нужен?
можно данные из одной модели в потомка передать то?
Misha
@sallfris
Oct 30 2017 11:21
@RAPOS а ты не понятно что на вход пуляешь
RAPOS
@RAPOS
Oct 30 2017 11:24
@sallfris спасибо. Оказывается нехватало скобок ()
KarmaBot
@KarmaBot
Oct 30 2017 11:24
Спасибо (+1) для @sallfris принято! Текущая карма +31.
RAPOS
@RAPOS
Oct 30 2017 11:24
            $query->select([
                '*',
                '
                   ( case
                    when rating.`rating_workday` >= 10 then rating.rating_value * 1000
                    else rating_value
                    end) as rating_value_test
                '
            ]);
des1roer
@des1roer
Oct 30 2017 11:28
поэтому берешь равскл и проверяешь в бд
Andrey Kushnarev
@andku83
Oct 30 2017 11:34
@RAPOS
$query->select([
    '*',
    'rating_value_test' => new Expression('case when rating.`rating_workday` >= 10 THEN rating.rating_value * 1000 else rating_value end')
]);
des1roer
@des1roer
Oct 30 2017 11:40
почему findWith ругается на внешний ключ?
Punka
@Punka
Oct 30 2017 11:41
@des1roer типы разные
des1roer
@des1roer
Oct 30 2017 11:41
Illegal string offset
$promoCode = PromoCode::findByCode($this->$attribute);
    dd($promoCode->find()->findWith(['promoCodeOffer'], $promoCode));
через релейшн то все норм работает
RAPOS
@RAPOS
Oct 30 2017 11:51
@andku83 спасибо :-)
KarmaBot
@KarmaBot
Oct 30 2017 11:51
Спасибо (+1) для @andku83 принято! Текущая карма +94.
RAPOS
@RAPOS
Oct 30 2017 11:52
Мужики короче всё поправил обновляю страницу, она белая. В заголовке Yii\base\ErrorException
Даже error_reporting(E_ALL) ничего не выводит
Punka
@Punka
Oct 30 2017 11:53
@RAPOS в акшоне нет ретурна
RAPOS
@RAPOS
Oct 30 2017 11:55
@Punka всё исправил, SORT_ASCT - буква лишняя была
Punka
@Punka
Oct 30 2017 11:55
@RAPOS ну такое мне бы даже в голову не пришло
RAPOS
@RAPOS
Oct 30 2017 11:56
@Punka оказывается это ещё не всё
@Punka во вьюхе через принтр выводит значение, принтр убераю и белый экран
Punka
@Punka
Oct 30 2017 11:58
@RAPOS ошибки отключены
@RAPOS зайди в пыхапы и включи ошибки
RAPOS
@RAPOS
Oct 30 2017 12:01
@Punka В пхп
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
display_errors = On
display_startup_errors = On
log_errors = On
des1roer
@des1roer
Oct 30 2017 12:05
а как передать релейшены в другую модель?
KarmaBot
@KarmaBot
Oct 30 2017 12:18
@web24dev, и какой ответ ты ожидаешь услышать?
RAPOS
@RAPOS
Oct 30 2017 12:35
@Punka и да ты прав небыло ретурна, грёбаный Yii 1 :-D
Daniel
@letto_daniel_twitter
Oct 30 2017 12:43
image.png
помогите плиз с редиректом после авторизации..
я скрыл страницу about от неавторизованных , как после успешного входа сразу перейти на страницу about?
у меня получилось только рендерить return $this->render('about'); , но как сам url поменять , тобишь перейти на адрес about'а ?
Dmitry Eliseev
@ElisDN
Oct 30 2017 12:49
@letto_daniel_twitter return $this->redirect(['about']);
Daniel
@letto_daniel_twitter
Oct 30 2017 12:54
@ElisDN все ровно выдает пустую страницу(
Boris
@bsyomov
Oct 30 2017 12:56
@letto_daniel_twitter А редирект-то происходит?
Daniel
@letto_daniel_twitter
Oct 30 2017 12:56
нет остаюсь на mysite.ru/login
и просто пустая страница
des1roer
@des1roer
Oct 30 2017 12:57
скинь весь код на гист какой нить
Daniel
@letto_daniel_twitter
Oct 30 2017 12:57
только вот это выводиться echo 'ПОЛЬЗОВАТЕЛЬ УСПЕШНО АВТОРИЗОВАН. ТУТ ПИШЕМ СВОЙ КОД';
des1roer
@des1roer
Oct 30 2017 13:00
стери эту строку
вроде все так залил
это сайт контроллер
des1roer
@des1roer
Oct 30 2017 13:02
   if ($model->load(Yii::$app->request->post()) && $model->login()) {
        return $this->redirect(['about']);
    }
Daniel
@letto_daniel_twitter
Oct 30 2017 13:04
не работает
все ровно остаюсь на пустой странице
уже все перерыл что то никто нигде не знает как решить этот ридерект
Andrey Kushnarev
@andku83
Oct 30 2017 13:14
@letto_daniel_twitter супер, сначала echo , потом редирект???
Daniel
@letto_daniel_twitter
Oct 30 2017 13:14
да убрал это эхо
все равно не катит
уже 3й час мучаюсь с этим долбаным ридиректом(((
Andrey Kushnarev
@andku83
Oct 30 2017 13:15
эхо отправляет контент, а редирект это заголовок ответа, после отсылки контента заголовок уже ушел
Daniel
@letto_daniel_twitter
Oct 30 2017 13:15
        $return_url = 'http://mysite/about';
//var $return_url have previous url
if($return_url!=NULLL){
return $this->redirect($return_url);
}
else{
return $this->goBack();
}
уже вот такую конструкцию слепил
точнее скопипастил
Andrey Kushnarev
@andku83
Oct 30 2017 13:16
и что? так работает?
Daniel
@letto_daniel_twitter
Oct 30 2017 13:16
тоже нет
image.png
вот уже как экшнлогин разросся
пробую и коментирую
Andrey Kushnarev
@andku83
Oct 30 2017 13:17
логин находится в модуле или обычный контроллер?
Daniel
@letto_daniel_twitter
Oct 30 2017 13:18
Да это все базовое при установке
Punka
@Punka
Oct 30 2017 13:18
@letto_daniel_twitter ты уже авторизован видать
Daniel
@letto_daniel_twitter
Oct 30 2017 13:18
авторизация проходит
Punka
@Punka
Oct 30 2017 13:18
@letto_daniel_twitter $this->goHome();
он не возвращает, а вызывает
что там у тебя?
goBack() то есть
Andrey Kushnarev
@andku83
Oct 30 2017 13:19
$this->redirect('about'); без echo пробовал?
Daniel
@letto_daniel_twitter
Oct 30 2017 13:19
точнее следует так : вводишь лог и пас , появляется пустая страница. Далее возвращаешься сам назад и смотришь что ты авторизован. дальше нажимаешь логаут и опять пустая страница . опять "назад" и ты уже выходишь
@andku83 да
@andku83 ща проверю на всякий случай
еще раз
Punka
@Punka
Oct 30 2017 13:20
@letto_daniel_twitter на 6-й строке добавь return
Daniel
@letto_daniel_twitter
Oct 30 2017 13:23
@andku83 $this->redirect('about'); теперь не пустая страница а та же форма логина остается (ничего не исчезает) "авторизация проходит"
редиректа нет(
@Punka добавил , проверил , нет изменений
image.png
AccessControl может тут что то не так прописано?
просто до изучения AccessControl еще не добрался
знаю что распределение прав только
Daniel
@letto_daniel_twitter
Oct 30 2017 13:29
почему хотя бы не работает ф-я goHome() ???
и goBack()
Denis
@head26
Oct 30 2017 13:29
0_о
Punka
@Punka
Oct 30 2017 13:30
$return_url!=NULLL oO
Denis
@head26
Oct 30 2017 13:30
контроль доступа то, распределение прав это RBAC
Punka
@Punka
Oct 30 2017 13:30
в слове 2 l
не 3
Daniel
@letto_daniel_twitter
Oct 30 2017 13:30
@head26 я ведь правильно понимаю что goHome() должна возврашать на главную страницу , а не выдавать пустую и с именем login
3.14здец мозги плавятся уже с этого редиректа(
Denis
@head26
Oct 30 2017 13:33
@letto_daniel_twitter так ты посмотри как работает goHome
yii2 опенсорс
Punka
@Punka
Oct 30 2017 13:34
@head26 он вообще ошибки отключил зачем то
Daniel
@letto_daniel_twitter
Oct 30 2017 13:34
public function goHome()
{
    return Yii::$app->getResponse()->redirect(Yii::$app->getHomeUrl());
}
Punka
@Punka
Oct 30 2017 13:34
@head26 либо белый экран, либо все работает
:D
Daniel
@letto_daniel_twitter
Oct 30 2017 13:34
вот вся его работа в контроллере.пхп
Punka
@Punka
Oct 30 2017 13:34
экстримальный подход
Denis
@head26
Oct 30 2017 13:38
@letto_daniel_twitter Yii::$app->getHomeUrl() смотри что делает, поймешь откуда урл берется и куда должно возвращать
а вообще и так написано, что бы не смотреть
Andrey Kushnarev
@andku83
Oct 30 2017 13:38

@letto_daniel_twitter

@letto_daniel_twitter на 6-й строке добавь return

return $this->goHome();
Denis
@head26
Oct 30 2017 13:38
stop executing this action and redirect to home page
Daniel
@letto_daniel_twitter
Oct 30 2017 13:39
@andku83 давно добавил , тестирую уже с return
Daniel
@letto_daniel_twitter
Oct 30 2017 14:00
даже костыль придумать не могу(
des1roer
@des1roer
Oct 30 2017 14:05
а как rebase отменить
Andrey Kushnarev
@andku83
Oct 30 2017 14:14
@des1roer скачать репозиторий заново
@letto_daniel_twitter дай тимвьювер - гляну
des1roer
@des1roer
Oct 30 2017 14:15
git rebase --abort
web24dev
@web24dev
Oct 30 2017 16:18
В init() создаются 2 переменные как их передать допустим в indexaction?
Dmitry Eliseev
@ElisDN
Oct 30 2017 16:20
@web24dev Через $this->.
web24dev
@web24dev
Oct 30 2017 16:21
@ElisDN спасибо
KarmaBot
@KarmaBot
Oct 30 2017 16:21
Спасибо (+1) для @ElisDN принято! Текущая карма +22.
Andrey Kushnarev
@andku83
Oct 30 2017 20:43
вопрос не к Yii, а по mysql,
как получить такой же результат как в следующем запросе при включенном ONLY_FULL_GROUP_BY в mysql 5.7?
SELECT 
  product.id AS id, 
  product.image AS image, 
  product_additional_val.count_color AS count_color, 
  product_additional_val.url AS url 
FROM 
  product 
  INNER JOIN (
    SELECT 
      COUNT(product_additional.cid) AS count_color, 
      product_additional.* 
    FROM 
      product_color 
      INNER JOIN (
        SELECT 
          product_additional_sub.pid AS pid, 
          product_additional_sub.url AS url, 
          product_additional_sub.article AS article, 
          product_additional_sub.cid AS cid 
        FROM 
          product_additional AS product_additional_sub 
        WHERE 
          is_active = '1' 
        ORDER BY 
          sorting ASC
      ) AS product_additional ON product_additional.cid = product_color.id 
    GROUP BY 
      product_additional.pid
  ) AS product_additional_val ON product.id = product_additional_val.pid 
WHERE 
  product.is_active = '1' 
GROUP BY 
  product.id 
ORDER BY 
  product.sorting ASC, 
  product.id DESC
KarmaBot
@KarmaBot
Oct 30 2017 20:43
@andku83, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Andrey Kushnarev
@andku83
Oct 30 2017 20:45
особенность в том что при обоих группировках (product_additional.pid, product.id) нужно еще учитывать сортировку этих элементов
web24dev
@web24dev
Oct 30 2017 21:19
if (Model::loadMultiple($html, Yii::$app->request->post()) && Model::validateMultiple($html)) {
foreach ($html as $hl) {
$hl->save(false);
}
return print_r($html);
}
return $this->render('edit',['alt'=>$alt]);
}
$.post("test", { 'Page[1][descr]': header,'Page[2][descr]': html,'Page[3][descr]': footer,_csrf: csrfToken }
почему данный аякс не проходит валидацию?
Andrey Kushnarev
@andku83
Oct 30 2017 23:59
@web24dev валидация не проходит не Аякс а данные твоей формы