Олег
Ох, а это-то зачем?
Олег
Надеюсь, к релизу это поправят...
Dmytro
Надеюсь, к релизу это поправят...
Нет, __class мы пока решили оставить. https://www.facebook.com/groups/yiitalk/permalink/10156431885757150/?comment_id=10156432311912150&comment_tracking=%7B%22tn%22%3A%22R2%22%7D
Dmytro
Там Саша написал причины
Alexey
Зря убрали ::className()
Dmytro
Чем он лучше ::class или get_class()?
Олег
Чем он лучше ::class или get_class()?
Только тем, что нельзя сделать $object::class. Если использовать get_class(), а $object === null, то get_class() вернёт не то. Правда, с 7.2 это поправили и get_class() в таком случае будет ругаться. Так что отсутствие ::className() я, скорее, приветствую.
Dmytro
> Если использовать get_class(), а $object === null, то get_class() вернёт не то null::className() тоже будет не очень корректно работать ;)
Олег
Это будет ошибка, и это норм. А с get_class() до 7.2 ошибки не будет.
Alexey
Чем он лучше ::class или get_class()?
тем что его можно было переопределить и отдавать не класс вызова, а какой-нибудь дочерний класс
Alexey
я в модулях такой хак часто юзал ;-0
Dmytro
Звучит странно. При попытке узнать класс объекта, прикидываться другим классом?)
Олег
В любом случае до повсеместного распространения 7.2 придется теперь использовать какой-нибудь свой хелпер.
who are you
Он заголовки отправляет, чтобы браузер скачал файл, а не сам открыл. Мне нужно, чтобы сам открыл.
там же есть опция для этого inline: boolean, whether the browser should open the file within the browser window. Defaults to false, meaning a download dialog will pop up.
Alexey
в любом случае решаемо (:
Олег
Почему? Я в своих проектах НЕ использую ::className() уже больше 2 лет
Я тоже стараюсь не использовать, за исключением вот таких случаев, когда нужно было получить класс по объекту.
who are you
надо подарочки на 8 марта уже искать а мы в чате торчим 😐
Valentin
Нужна CRM на YII, для быстрого старта, есть у кого готовое?
Valentin
Если есть что-то реальное, можем купить, и взять разработчика на доработку и поддержку
who are you
фреймворк на то и фреймворк что CRM пишется под задачи заказчика, а вам нужно готовое, это не здесь
Олег
Нет, __class мы пока решили оставить. https://www.facebook.com/groups/yiitalk/permalink/10156431885757150/?comment_id=10156432311912150&comment_tracking=%7B%22tn%22%3A%22R2%22%7D
Почитал, Александр пишет Александр Макаров Serban Cristian new DI container will be able to work easily with any class, not only ones extending Yii's Object or Component А что изменилось? Я и раньше мог любой класс использовать как компонент, не обязательно унаследованный от Yiis Object or Component
Сергей
Добрый день! Постоянно использую композитные формы Дмитрия Елисеева (https://github.com/ElisDN/yii2-composite-form). Столкнулся с ситуацией, когда не смог их применить :( Ситуация следующая. Форма создания заказа в админке: • input:text Адрес доставки • radio Новый покупатель или существующий • (новый покупатель) 'input:text' Имя • (новый покупатель) 'input:text' Телефон • (существующий покупатель) 'select' Выбор покупателя. Соответственно у меня есть отдельно форма для нового покупателя (имя, телефон) и форма для выбора покупателя (покупатель). Я хочу сделать композитную форму, в которой есть: • Поле "Адрес доставки" • Поле выбора "Новый покупатель или существующий" • Форма "Новый покупатель" • Форма "Существующий покупатель" И тут появляется две проблемы: *Проблема раз* Метод load композитной формы вернёт false, если данных по какой-то из вложенных форм нет (а одной из форм, не будет, так как они подгружаются на фронте аяксом в зависимости от поля выборы "Новый/существующий покупатель"). Как по мне это не правильное поведение. Ведь логика стандартного load в модели — если есть хотя бы одно поле из этой формы, то вернуть true. А сейчас получается true возвращается только в случае, если есть ВСЕ формы. *Проблема два* При валидации будут проверены ВСЕ формы. Никак нельзя задать условия - какие формы проверять, а какие нет. Хочется, чтобы был некий аналог when для правил валидации, только на уровне вложенных форм. И решить эти проблемы не меняя сам код композитных форм (например, отнаследовавшись и переписав метод) никак нельзя. Собственно вопрос... Может я загнался в логике и не вижу более простого решения? :)
Dmitriy
Пингани Елисеева, он тут есть.
Сергей
@elisdn Пинг
Dmitry
@elisdn Пинг
Сегодня первую проблему посмотрю.
Олег
То есть, более глобальных изменений, позволяющих DI "работать с любыми классами" нет? Только возможность свойство $class назачать появилась?
Сергей
Сегодня первую проблему посмотрю.
Спасибо. Форкну и покажу еще на гитхабе попозже как вторую проблему решил
Сергей
@poweraxis @elisdn Сделал вот: https://github.com/vjik/yii2-composite-form/blob/master/src/CompositeForm.php 1) Изменено поведение функции load(). Если есть данные хотя бы по одному полю формы или хотя бы по одной вложенной форме — возвращается True, в противном случае возвращается False. 2) Добавлена функция internalFormsWhen(), позволяющая задать условие: работать с формой или нет. Пример: class CreateForm extends CompositeForm { public $kind; public function __construct($config = []) { $this->formA = new FormA(); $this->formB = new FormB(); $this->formC = new FormC(); $this->formD = new FormD(); parent::__construct($config); } protected function internalForms() { return ['formA', 'formB', 'formC', 'formD']; } protected function internalFormsWhen() { return [ [ 'formB', function () { return $this->kind = 1; } ], [ ['formC', 'formD'], function () { return $this->kind = 2; } ], ]; } public function rules() { return [ ['kind', 'in', 'range' => [1, 2]], ]; } } Форма A будет всегда обрабатываться. Форма B — когда kind=1. Формы C и D — когда kind=2.
Dmitry
Поменял метод load().
who are you
лучше бы назвали - составные формы или сложные, композитные - сразу не сообразишь чо это
Сергей
Ну в целом суть-то отражает)
who are you
я гуглил когда нужно было чот аналогичное - композитные даже не вспомнил слово 😄
Serge
Ребята, а есть yii2 дополнение для работы с Гугл драйв?
Сергей
flysystem и к нему ещё поищи расширение для google drive
Сергей
https://github.com/creocoder/yii2-flysystem
Сергей
Вот например: https://github.com/la-haute-societe/yii2-flysystem-google-drive (просто загуглил, сам не пользовал)
Олег
Что ты понимаешь под "DI работать с любыми классами"?
Я хотел понять, что имел в виду Александр, когда писал "will be able to work easily with any class". Имелось в виду только то, что теперь не будет конфликтов со свойством $class, или нечто большее.
Alexander
в текущем контейнере нет нормальной поддержки конструкторов и вызовов методов
Alexander
в отдельном есть
Alexander
поэтому конфижить можно что угодно и как угодно
Alexander
в 2.0 многое можно, но то, что не сделано под Yii изначально, не очень удобно
Михаил
Коллеги, приветствую. кто-нибудь встречал решение работающую с Asterisk AMI или сразу с freepbx?
🛸
Всем доброго утра ! Таблица такая есть: [id, username, sum] там лежат такие строки: 1) - 1 - test1 - 10.00 2) - 2 - test2 - 5.00 3) - 3 - test1 - 2.00 надо запрос сделать к бд, такой чтобы у test1 получилась сумма 10.00 + 2.00. Те в результате test1 => 12.00, test2 => 5.00 Подскажите пж как сделать. groupBy если делать то как сложить. Задумался, ищу ответ в Интернет и сразу тут вопрос задал 😉
Ivan
Это базис SQL
Ivan
Group by и в select пишется SUM(sum)
🛸
спс)
Erzhigit
Салам коллеги
Erzhigit
не могу зайти на gii генератор
Erzhigit
сайт на хостинге заливал
Erzhigit
как можно теперь зайти ?
Sanzhar
@tagay_e Там проверка на ip-шник
Sanzhar
только локально пропускает
Sanzhar
уберешь проверку, будет и на хостинге
Erzhigit
проверка айпи в конфиге ?
Erzhigit
Спасибо!
Eugene
Ребята, в GridView строки с данными одна из строк с датой, как можно сравнить значение одной строки со следующей и если даты совпадают то задать им один background?)
who are you
Яваскрипт слыхал?
who are you
Это самое простое что можно сделать
Eugene
а rowOptions мне не поможет?
Сергей
а rowOptions мне не поможет?
Поможет. Запоминай вкакой-н. переменной предыдущее значение и задавай нужные тебе стили
Eugene
Поможет. Запоминай вкакой-н. переменной предыдущее значение и задавай нужные тебе стили
а как можно получить это самое предыдущее значнеие? в чем оно хранится?
Сергей
оно не хранится - сам сохраняй)
Сергей
Что-то вроде: $prevValue = null; … 'rowOptions' => function ($model, $key, $index, $grid) use ($prevValue) { $options = []; if ($prevValue == $model->value) { $options = ['class' => 'highlight']; } $prevValue = $model->value; return $options; }
Pavel
Я делаю форму для восстановления пароля, и соответсвенно у меня два вью: для емэйла и для пароля, я могу как-то в одном экшоне проверить что пост пришел с определенной?
Pavel
Или мне делать раздельные модели
Eugene
Я делаю форму для восстановления пароля, и соответсвенно у меня два вью: для емэйла и для пароля, я могу как-то в одном экшоне проверить что пост пришел с определенной?
а зачем модели то разные) ты можешь в форме не указывать action и тогда форма будет отправлена на action который срендерил твое представление) а с экшена уже редиректить)