These are chat archives for yiisoft/yii2/rus

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

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

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

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

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

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

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

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

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

RAPOS
@RAPOS
Oct 30 2017 09:20 UTC
Всем привет как переделать запрос CDbCriteria c Yii1 на Yii2 ??
KarmaBot
@KarmaBot
Oct 30 2017 09:20 UTC
@RAPOS, здравствуй.
Denis
@head26
Oct 30 2017 09:21 UTC
@RAPOS конкретизируй, запрос кинь
Andrey Kushnarev
@andku83
Oct 30 2017 09:21 UTC
@OligarchCat_twitter сколько моего кода в твоем блокноте)))
насчет длины телефона, https://github.com/Borales/yii2-phone-input/blob/master/src/PhoneInputValidator.php - эта штука получше будет, там же есть и phoneInput для всех стран
Denis
@head26
Oct 30 2017 09:23 UTC
ахаха
@andku83 пора бабки за инфу брать)
romanpan2
@romanpan2
Oct 30 2017 09:36 UTC
@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 UTC
@romanpan2 само-собой что нужно, ну дулжен же ты хоть немножко подумать))
romanpan2
@romanpan2
Oct 30 2017 09:38 UTC
@andku83 ок))) спасибо
KarmaBot
@KarmaBot
Oct 30 2017 09:38 UTC
Спасибо (+1) для @andku83 принято! Текущая карма +93.
romanpan2
@romanpan2
Oct 30 2017 09:39 UTC
@andku83 как спасибо добавить к карме?
Andrey Kushnarev
@andku83
Oct 30 2017 09:39 UTC
для того чтобы код хорошо форматировался в перд строке и после ставь обратные кавычки `
@romanpan2 так ты добавил к карме
пишешь имя и «спасибо» в каком-то виде (tnx. thank. спс...)
KarmaBot
@KarmaBot
Oct 30 2017 09:40 UTC
@andku83, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
romanpan2
@romanpan2
Oct 30 2017 09:41 UTC
@andku83 thank
Denis
@head26
Oct 30 2017 09:41 UTC
))
Andrey Kushnarev
@andku83
Oct 30 2017 09:41 UTC
бот устал)
romanpan2
@romanpan2
Oct 30 2017 09:41 UTC
@andku83 похоже на то
Andrey Kushnarev
@andku83
Oct 30 2017 09:42 UTC
он иногда не пишет, но при этом может считать
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 09:44 UTC
@andku83 есть еще, но там слишком личное :)
а чем можно сконвертить win в utf8 на линуксе?
Andrey Kushnarev
@andku83
Oct 30 2017 09:46 UTC
а пхпшторм не конвертит?
Alexey Samoylov
@russianlagman
Oct 30 2017 09:47 UTC
iconv
find --exec
если вкратце :-)
Кот Олигарха
@OligarchCat_twitter
Oct 30 2017 09:50 UTC
не.. так открывает..
Punka
@Punka
Oct 30 2017 10:01 UTC
чем можно открыть текстовый файл который весит 2.5 гига?
Denis
@head26
Oct 30 2017 10:02 UTC
@Punka lister в тотал коммандере попробуй
RAPOS
@RAPOS
Oct 30 2017 10:03 UTC
@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 UTC
@RAPOS, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Punka
@Punka
Oct 30 2017 10:03 UTC
@head26 он через блокнот открыть пытается
@head26 блокнотом такое не открыть
Denis
@head26
Oct 30 2017 10:04 UTC
@Punka так ты выбери там что бы не через блокнот открывал а через lister
@Punka f3 жми
Punka
@Punka
Oct 30 2017 10:04 UTC
@head26 ого, спасибо )
KarmaBot
@KarmaBot
Oct 30 2017 10:04 UTC
Спасибо (+1) для @head26 принято! Текущая карма +20.
Denis
@head26
Oct 30 2017 10:04 UTC
@Punka открыло?
Punka
@Punka
Oct 30 2017 10:04 UTC
@head26 ага
Denis
@head26
Oct 30 2017 10:05 UTC
@Punka ок
Denis
@head26
Oct 30 2017 10:05 UTC
что происходит вообще
RAPOS
@RAPOS
Oct 30 2017 10:05 UTC
@head26 Я уже всё перепробовал, не могу заставить выполнить запрос
@head26 Это нужно переделать на Yii2
Yii2 basic, авторизация и регистрация через БД
@letto_daniel_twitter а что там особенного?
Daniel
@letto_daniel_twitter
Oct 30 2017 10:08 UTC
passwordResetToken-html.php в этом файле ошибка , ругается на } else {
throw new ViewNotFoundException("The view file does not exist: $viewFile");
не могу понять в чем проблема
Denis
@head26
Oct 30 2017 10:10 UTC
ну ты ошибку то хоть кинь
че за дела то
Daniel
@letto_daniel_twitter
Oct 30 2017 10:10 UTC
image.png
RAPOS
@RAPOS
Oct 30 2017 10:10 UTC
@head26 я уже переделал на Query но не работает Invalid argument supplied for foreach()
Denis
@head26
Oct 30 2017 10:11 UTC
@letto_daniel_twitter нет утебя файла отображения, либо не там лежит, либо не то подключил
@letto_daniel_twitter вьюхи нет короче
@RAPOS неправильно значит переделал
@RAPOS или покажи что переделал и на что ругается там
Daniel
@letto_daniel_twitter
Oct 30 2017 10:13 UTC
@head26 спасибо буду искать
KarmaBot
@KarmaBot
Oct 30 2017 10:13 UTC
Спасибо (+1) для @head26 принято! Текущая карма +21.
RAPOS
@RAPOS
Oct 30 2017 10:16 UTC

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

@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 UTC
@RAPOS убери из ->select строку, там должен быть объект
RAPOS
@RAPOS
Oct 30 2017 10:57 UTC
@andku83 Я уже это переделал.
Andrey Kushnarev
@andku83
Oct 30 2017 10:57 UTC
ну так к этому - пиши соответственное
RAPOS
@RAPOS
Oct 30 2017 10:58 UTC
@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 UTC
@RAPOS, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Andrey Kushnarev
@andku83
Oct 30 2017 10:59 UTC

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

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

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

>

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

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

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

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

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

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

@letto_daniel_twitter

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

return $this->goHome();
Denis
@head26
Oct 30 2017 13:38 UTC
stop executing this action and redirect to home page
Daniel
@letto_daniel_twitter
Oct 30 2017 13:39 UTC
@andku83 давно добавил , тестирую уже с return
Daniel
@letto_daniel_twitter
Oct 30 2017 14:00 UTC
даже костыль придумать не могу(
des1roer
@des1roer
Oct 30 2017 14:05 UTC
а как rebase отменить
Andrey Kushnarev
@andku83
Oct 30 2017 14:14 UTC
@des1roer скачать репозиторий заново
@letto_daniel_twitter дай тимвьювер - гляну
des1roer
@des1roer
Oct 30 2017 14:15 UTC
git rebase --abort
web24dev
@web24dev
Oct 30 2017 16:18 UTC
В init() создаются 2 переменные как их передать допустим в indexaction?
Dmitry Eliseev
@ElisDN
Oct 30 2017 16:20 UTC
@web24dev Через $this->.
web24dev
@web24dev
Oct 30 2017 16:21 UTC
@ElisDN спасибо
KarmaBot
@KarmaBot
Oct 30 2017 16:21 UTC
Спасибо (+1) для @ElisDN принято! Текущая карма +22.
Andrey Kushnarev
@andku83
Oct 30 2017 20:43 UTC
вопрос не к 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 UTC
@andku83, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Andrey Kushnarev
@andku83
Oct 30 2017 20:45 UTC
особенность в том что при обоих группировках (product_additional.pid, product.id) нужно еще учитывать сортировку этих элементов
web24dev
@web24dev
Oct 30 2017 21:19 UTC
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 UTC
@web24dev валидация не проходит не Аякс а данные твоей формы