PowerAxis
Читай выше
Vadim
Читай выше
> Считается, что правильная формулировка вопроса содержит как минимум половину ответа, а также это даёт толчок мыслям, направляя их в нужное русло Ну да, похоже на правду.
PowerAxis
Я разделяю хранение и формы. В форме уже хранится в виде массива.
Можешь объяснить? Вот, к примеру, у меня задача - https://imgur.com/oAKXi4X таких строк может быть много, и я просто дублирую инпут формы с именем типа ProductForm[video][0] .... ProductForm[video][3] и закидываю в БД в одно поле как json. Но при редактрировании нужно декрдировать json и вывести все эти поля... как ты такое средставми фреймворка делаешь?
Сергей
У меня как раз есть с видосами, ща)
Сергей
Можешь объяснить? Вот, к примеру, у меня задача - https://imgur.com/oAKXi4X таких строк может быть много, и я просто дублирую инпут формы с именем типа ProductForm[video][0] .... ProductForm[video][3] и закидываю в БД в одно поле как json. Но при редактрировании нужно декрдировать json и вывести все эти поля... как ты такое средставми фреймворка делаешь?
Форма (название видео + ID ролика на ютубе): class VideosForm extends Model { public $youtubeId = []; public $label = []; public function __construct(Product $product = null, array $config = []) { if ($product) { foreach ($product->videos as $video) { $this->youtubeId[] = $video->youtubeId; $this->label[] = $video->label; } } parent::__construct($config); } public function rules(): array { return [ [['youtubeId', 'label'], 'each', 'rule' => ['filter', 'filter' => 'trim']], ['youtubeId', 'each', 'rule' => ['required']], ]; } public function attributeLabels() { return [ 'youtubeId' => 'ID ролика', 'label' => 'Название', ]; } public function toProduct(Product $product) { $videos = []; foreach (ValueHelper::assertArray($this->youtubeId) as $n => $youtubeId) { $videos[] = ProductVideo::make([ 'youtubeId' => $youtubeId, 'label' => ArrayHelper::getValue($this->label, $n), ]); } $product->videos = $videos; } } Суть в том, что в конструкторе форма наполняется, а в функции toProduct выгружается в объект.
PowerAxis
ну я понял, ты отдельно форму делаешь в таком случае
Сергей
Да... у меня всегда отдельные формы
Сергей
в чистую AR как форму не пользую
PowerAxis
нет, я тоже в данном случае не использовал AR как форму
PowerAxis
просто поле с видосами относится, например, к свойству товара
PowerAxis
и мне кажется оверхэдом делать для поля отдельную форму
Сергей
Ну незнаю, у меня для многих полей отдельные модели, которые потому с помощью CompositeForm собираются в одну форму. Удобно - нет каши, все модели простые, а сам продукт сложный)
PowerAxis
ну, возможно, это и правильное решение. я понял, спасибо
Сергей
ну, возможно, это и правильное решение. я понял, спасибо
http://joxi.ru/WL2164C6EqyEAX Вот, например, форма отдельного продукта. Если всё в одном было бы - получился огромный класс. + удобство создание дополнительных форм появляется
PowerAxis
у елисеева такое видел
Sergey
Гайс может кто помочь? Uncaught Error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in .. Уже пытался в ini подключать и вот так extension=pdo_mysql.so и вот так extension=php_pdo_mysql.so
Сергей
у елисеева такое видел
Ага, это его компонент как раз)
PowerAxis
я попробую следующий раз такой вариант
Sergey
убунту
Сергей
А php_pdo_mysql.so точно есть?
Sergey
да
PowerAxis
Ага, это его компонент как раз)
а можешь еще показать как ты в виде выводишь повторяющиеся поля формы для update'a ?
Сергей
да
Может лучше в php чатике спросить?
Сергей
Думаю там быстрее ответят)(
PowerAxis
А, ну тогда это не особо отличается от моего варианта
who are you
Может этот феномен как-то научно называется уже?
Это называется мышление одностороннее)
mrG1K
Подскажите как сделать условие on при leftJoin с несколькими условиями в массиве Если юзаю массив то значения массива не преобразуются (название таблицы и тп) в запросе идут в '' , и ничего не джоиниться
mrG1K
в примерах лефт джоин юзают в строку ( но не хотелось бы (
Vano
в примерах лефт джоин юзают в строку ( но не хотелось бы (
покажи псевдокод того, что ты хочешь сделать
mrG1K
https://i.g1k.ru/ZDRjNm.png
mrG1K
Формирует запрос вот так https://i.g1k.ru/OWZiZD.png
mrG1K
т.е значения не прогоняются через преобразование таблиц с префиксом .. в итоге ничего не джоиниться
Vano
Expression используй, тогда экранироваться не будет.
mrG1K
Нуу даж не знаю как будет смотреться.. так то можно и в строку зафигачить то что сейчас есть добавить AND и оно вроде даже работает.. Но блин в доке написано что можно массив, и оно даже его юзает но както не оч( https://i.g1k.ru/YjExND.png
Vano
пару секунд погоди
Vano
не, все таки только строками
Vano
не нашел я другого решения
mrG1K
Может кто знает?) Судя по https://github.com/yiisoft/yii2/issues/11842#issuecomment-229024541 должно работать и в таком массиве.. Но не пашет(
Vano
а ну пришли свой код
Vano
только не картинкой
mrG1K
похоже решили это поведение не исправлять (
mrG1K
https://github.com/yiisoft/yii2/issues/7549
mrG1K
Добавили комментарий в код что это работает не так как ожидается и все https://github.com/yiisoft/yii2/commit/e4dc2026bc3669cbc6f739f19de32c6a04d1a37f
The Ant
чтоб не батхертить, просто не делай этого
mrG1K
кто ж так именует колонки? это пиздец
Это конкретно к какому наименованию колонки?
The Ant
['order.UserId' => 'user.Id'] к такому. Сложно делать всегда в нижнем регистре и не выебываться?
mrG1K
Это не мой тикет
mrG1K
https://i.g1k.ru/ZDRjNm.png
мой вопросы выше..
mrG1K
https://github.com/yiisoft/yii2/issues/7549
и проблема не совсем к тому что я первое скинул.. проблема идентична вот этому
mrG1K
По комменту я понял что искать справедливости не стоит и заюзал строку..
mrG1K
да там именно суть в том что массив и значения возвращаются как строка
mrG1K
Note that the array format of [[where()]] is designed to match columns to values instead of columns to columns, so + * the following would **not** work as expected: `['post.author_id' => 'user.id']`, it would + * match the `post.author_id` column value against the string `'user.id'`. + * It is recommended to use the string syntax here which is more suited for a join:
The Ant
точно не пашет... лол )
The Ant
через экпрешен пашет... но пару условий + плейсхолдер пиздец будет 😞
The Ant
->leftJoin(['p' => Post::tableName()], [ 'p.post_id' => new \yii\db\Expression(':post_id'), ], [ ':post_id' => 40, ]) типа того ченить :D
mrG1K
да пофиг уже.. заюзал строку как "рекомендуют" в "доке".. С кучей AND и тп..
Сергей
mrG1K
может кто знает, есть ли в каком нибудь датапикере возможность включить опцию выбор только целыми месяцами?
🛸
всем привет. случаем нет ли готово модуля никто не знает? авторизация короткая. входишь по спец ссылке - там уже админка (те не вводишь пароль - пароль генерируется автоматически и есть спец ссылка для доступа к админке)
🛸
те нет пользователей
Anonymous
А самому че никак? 🤔
🛸
есть типа таблица page и session - в session автоматически нагенерированные хеши для доступа к page
🛸
да не ) легко. просто думал вдруг есть - тогда смысл самому
🛸
а вот думаю самому делать - мд5 чем еще обернуть поверх чтобы сложнее было подобрать если что ?
🛸
я думал делать мд5 из user_name + date_create
🛸
но хз
Anonymous
А как потом пароль используется?
Anonymous
Можно будет через какую-то форму его ввести?
Vano
но хз
https://www.yiiframework.com/doc/guide/2.0/en/security-passwords
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Если просто для хеша то пофигу что там будет
Anonymous
bcrypt используй
Это password_hash?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Есть его получить то доступ есть, а что закодировано абсолютно не важно
Vano
Это password_hash?
скорее всего - да
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Любая рандомная соль