Dmitry
@kohone было же?
Dmitry
нет лол
короче определи функцию getCdate и там напиши реализацию
Eugene
я просто хочу чтобы данные при выборке на уровне модели сразу приоретали нужный формат, типа условие в search() добавить или хз. Поэтому и спросил) Сейчас попробую функцией обойстись
w
Static.yiiframework.com рипнулся
w
По крайней мере с компа. Стили не подгружаются
Andrey Slutskiy
Или чуть более топорный вариант сделать в модели переменную public $date; и в функции afterFind присваивать ей значение на основе timestamp
w
С телефона у меня тоже все норм.
w
С пеки нет.
w
А все. Теперь норм
Dmitry
паникёр 😅
Eugene
Спасибо)
Сергей
Доброе утро, народ :) Есть у меня ActiveQuery класс, в нем там функции разные для выборки. Как мне сделать UPDATE используя мой класс? Что-то вроде: $myActiveQuery->byCustomer($customer)->onlyActive()->update('order', ['status' => 25])->execute()
Anton
Насколько я понимаю, ActiveQuery изначльно создан, чтобы select собирать
R
@predvoditelev вроде никак, activequery для выборки
Сергей
Жалко(
Anton
в $myActiveQuery->where лежит твоё условие
Vladislav
Доброе утро/день. Как можно после переопределения save в моделе в ней вызвать родительский save()?
Сергей
в $myActiveQuery->where лежит твоё условие
но ещё джойны могут быть(
Лёша
кто юзал: yii-dream-team/yii2-upload-behavior?
посмотри ещё https://github.com/lav45/yii2-file-upload-module
Anton
но ещё джойны могут быть(
в стандарте sql комнды update джойны, наверное, не предусмотрены
Vladislav
@predvoditelev ошибку выдаёт Declaration of common\models\Category::save($translate = true) must be compatible with yii\db\ActiveRecordInterface::save($runValidation = true, $attributeNames = NULL)
Сергей
public function save($runValidation = true, $attributeNames = NULL)
Vladislav
@predvoditelev модель просто унаследываеться от ActiveRecord, а он от BaseActiveRecord в котором есть save()
Максим
@kohone было же?
Не помню ему или нет, но ответ был
Vladislav
@sofvlad я бы мог воспользоваться и beforeSave() для моей задачи, но нужно передавать дополнительный параметр в методе и проделать действия перед сохранением
Vladislav
ну я думаю это легче всего, но как правильно назвать метод по стандарту, если он делает тоже самое что и существующий, но не хочется переопределять
Vladislav
типа _ для приватных переменных
Vladislav
=D
Сергей
Я использую отдельные классы-репозитории для работы с AR в БД. В таком случае такой проблемы нет: class CustomerRepository { public function save(Customer $customer, bool $some) { ... действия всякие ... if (!$customer->save()) { throw new RuntimeException('Не удалось сохранить покупателя'); }; } } А если в самом AR делать, то придется самому придумывать, нет стандарта.
Максим
prettySave :)
save1 же
R
@kohone ну это если уж совсем лень
Vladislav
то чувство когда в PHP нет нормальной перегрузки)
🎅
Лол
Vladislav
как в этом случае всё равно не поможет, ибо ты будешь переопределять родительский в любом случае
Vladislav
а так в PHP вроде нельзя создавать в одном классе методы с одинаковыми названиями, но разными параметрами
Vladislav
когда в C# такое можно
Eugene
В пхп есть целый раздел по работе с датами
я читал офф документацию, мне не помогло
Сергей
я читал офф документацию, мне не помогло
Тогда опиши, что не понял. Контекст не понятен - тебе вы пыхе надо это сделать? (тогда не понятно почему не помогло) или на уровне запроса в БД?
Сергей
тебе в gridview надо фильтровать?
Сергей
Это тогда в searchModel делай отдельный атрибут для даты и с ним уже работай ручками и на вывод и на фильтрацию
Dmitry
А почему бы дату не хранить типом DateTime и не любить тут всем мозги?) Если же нет, то для gridView можно рендер на поле настроить, там приводи к удобочитаемому виду.
Dmitry
Сортировка под капотом будет по int(unixtimestamp)
Dmitry
но работать будет
Сергей
Ему ж фильтрация ещё нужна
Andrey Slutskiy
Фильтр приводить к timestamp
Сергей
В поисковой модели на основании этого атрибута уже делать фильтрацию
Eugene
Что в итоге лучше сделать то?)
Andrey Slutskiy
Если только для грида то однозначно фильтр привести к timestamp. А в самом гриде данные пеобразовать к нужному формату (средста вывода значения в гриде)
Сергей
http://stuff.cebe.cc/yii2docs-ru/guide-output-data-widgets.html#filtracia-dannyh В поисковую модель добавь новое свойство, а в методе search использовать это свойство для создания нужного условия
Eugene
Спасибо большое) сейчас постараюсь реализовать ваши советы)
Andrey Slutskiy
а так в PHP вроде нельзя создавать в одном классе методы с одинаковыми названиями, но разными параметрами
А кто мешает определить метод save c параметрами как у родителя + преопределенный дополнитльный тебе параметр (arggg=null) и в зависимости от этого параметра вызывать сразу родителя или сввою "иную" логику?
Vladislav
@slutskiy ну а как вызвать save родителя
Максим
parent::save();
Andrey Slutskiy
parent::save()
Vladislav
вот именно через него не катит
Максим
а своему save ты добавил параметры, как в ошибке сказано?
Максим
второй параметр пропустил
Vladislav
в таком случае мне нужен дополнительный параметр в самом начале а не в конце
Максим
добавляй параметр в свойство модели
Максим
и в методе save проверяй его значение
Andrey Slutskiy
в нестандартном виде вызывай save(true, null, <translate>)
Vladislav
ну блин и будет + одна лишняя строка в контроллере где я буду определять параметр для модели
Vladislav
леееень =D
Максим
это так страшно - одна лишняя строка, позволяющая реализовать нужный функционал