
Санжар
17.03.2018
20:43:15

Ad.x ??
17.03.2018
22:04:51
в компилируемых языках тоже есть ограничения на инт... гавно гавняное

Shokha
18.03.2018
00:34:45

Google

Игорь
18.03.2018
02:36:17
Да и мозгам нужно время отдыхать, переварить все

Shokha
18.03.2018
03:04:49
Рахмат

Санжар
18.03.2018
04:11:10

Mark
18.03.2018
09:35:43
Думаю, многие стыкались с проблемой, когда есть таблица, в ней ячейки, и с некоторыми этими ячейками связаны данные из другой таблицы.
К примеру: таблица order, и есть таблица order_api — т.е. заказы, которые передаются по api, а есть ручные заказы, которые не хранятся в таблице orderApi.
Соотвественно, на view/update мы хотим получать данные и order, и если заказ по order_api — также информацию, которая хранится в этой табличке, чтобы не бегать. Но как с теми заказами, которых нет в order_api?
Решаем всё if/else или есть более элегантное решение?


Максим
18.03.2018
09:43:40
Думаю, многие стыкались с проблемой, когда есть таблица, в ней ячейки, и с некоторыми этими ячейками связаны данные из другой таблицы.
К примеру: таблица order, и есть таблица order_api — т.е. заказы, которые передаются по api, а есть ручные заказы, которые не хранятся в таблице orderApi.
Соотвественно, на view/update мы хотим получать данные и order, и если заказ по order_api — также информацию, которая хранится в этой табличке, чтобы не бегать. Но как с теми заказами, которых нет в order_api?
Решаем всё if/else или есть более элегантное решение?
хранить все заказы в одной таблице, и добавить поле, которое будет отвечат за тип заказа - обычный, через апи, ручной


Mark
18.03.2018
09:51:17
хранить все заказы в одной таблице, и добавить поле, которое будет отвечат за тип заказа - обычный, через апи, ручной
Это я сделал. Теперь вопрос в том: как выводить, к примеру, на DetailView. Допустим, попался заказ, который не по API, но в аттрибутах мы же указали, к примеру, api_id, который хранится в order_api. Я думаю, в данном случае лучше сделать дополнительный DetailView, и если заказ по API — он будет выводиться.
Но есть ещё другой вопрос, более сложный:
К примеру, у нас таблицы:
- service
- service_api
Не каждая услуга может иметь свои настройки API, но каждая настройка API имеет свою услугу.
Вот тут сложно в плане CRUD: как обойтись без JS здесь? Ну т.е, допустим, можем сделать сразу вывод всех полей и, полей для API - таким образом, при сохранении будут идти данные с двух таблиц.
Но если эта услуга не имеет настроек API — тогда как-то поля нужно эти игнорировать и сохранять её, как ручную.
Пока с идей: сделать форму, и если услуга не имеет настроек API — пускай эти поля попросту не заполняются, а там уже на back'е проверяем, если поля незаполнены - обычная услуга, если заполнены - API.


Максим
18.03.2018
09:53:15
Это я сделал. Теперь вопрос в том: как выводить, к примеру, на DetailView. Допустим, попался заказ, который не по API, но в аттрибутах мы же указали, к примеру, api_id, который хранится в order_api. Я думаю, в данном случае лучше сделать дополнительный DetailView, и если заказ по API — он будет выводиться.
Но есть ещё другой вопрос, более сложный:
если ты это сделал, то таблицы order_api вообще быть не должно, одна таблица будет для заказов. а для фильтрации можно использовать модель search, которая генерируется в crud
по второй части не понял сути. если таблицы связаны, то есть метод link, который позволяет сохранять связи


Mark
18.03.2018
09:56:02
если ты это сделал, то таблицы order_api вообще быть не должно, одна таблица будет для заказов. а для фильтрации можно использовать модель search, которая генерируется в crud
Видимо, я не совсем верно объяснил:
Таблица order имеет поля, к примеру: id, service(&), user(&), cost, quantity, date, type(handle, api).
Таблица order_api имеет поля: order_id(&), remote_order_id(ID удаленного заказа) — она нужна для того, чтобы не нарушать нормализацию, ибо не каждый заказ может быть по API.

Максим
18.03.2018
09:57:08
Видимо, я не совсем верно объяснил:
Таблица order имеет поля, к примеру: id, service(&), user(&), cost, quantity, date, type(handle, api).
Таблица order_api имеет поля: order_id(&), remote_order_id(ID удаленного заказа) — она нужна для того, чтобы не нарушать нормализацию, ибо не каждый заказ может быть по API.
если в order_api нет ничего, кроме айди внешнего и айди заказа, почему айди внешний не внести в таблицу с заказами? Null если его нет, и номер если есть

Mark
18.03.2018
09:57:50

Google

Saško
18.03.2018
09:57:51
->with('order_api') (или как там называется связь)
и добавляешь в грид поле order_api.remote_order_id

Alexander
18.03.2018
09:58:14
И кому хорошо от этой нормализации?)

Mark
18.03.2018
09:58:19

Saško
18.03.2018
09:58:27
пустое поле

Максим
18.03.2018
09:58:32

Saško
18.03.2018
09:59:11
но вообще действительно лучше добавить это поле в общую таблицу и не париться
идеальности в реальной жизни не бывает, так что это нормально чутка денормализировать таблицу ради удобства
ну если там не 20 полей, а одно

Mark
18.03.2018
09:59:43

Максим
18.03.2018
09:59:45
с таким подходом можно каждый параметр выносить в связанную таблицу

Saško
18.03.2018
10:00:52
Ну думаю да, пойду на сделку с совестью
а когда у тебя будет объем на миллионы, то могут быть вообще адские сделки с совестью в виде кеширования чего-то в полях, например, там вообще может быть дикая денормализация ради скорости

Антон
18.03.2018
15:20:37

Тимур
18.03.2018
15:27:32
о. епрст, наконец я вас нашел. этот гиттер меня заколебал))

Максим
18.03.2018
15:28:30
Я сначала прочитал Гитлер заколебал

Павел
18.03.2018
15:29:30
Чуть не зиганул

Сергей
18.03.2018
15:40:26
секретный чат))

Saško
18.03.2018
15:41:27
тоже прочитал гитлер и таки зиганул

Антон
18.03.2018
17:21:35
@devium спалил я тебя

Vladimir
18.03.2018
17:22:19
Ку всем, кто юзает ckeditor для yii2, вы не знаете какими параметрами задать стили для div'a окна редактора?
echo $form->field($model, 'content')->textarea()->widget(CKEditor::className(),[
'editorOptions' => [
'preset' => 'basic', //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать
'inline' => false, //по умолчанию false
],

Google

Kirill
18.03.2018
18:37:26
Ребята, извините что не по теме. Есть какой нибудь способ запустить расширение хрома из selenium?

☕ CunningFox
18.03.2018
18:38:51

PowerAxis
18.03.2018
18:40:20
Там есть что-то с фреймом связано, опция
Опять же, смотря что ты там юзаешь

Rich
18.03.2018
18:41:15

Kirill
18.03.2018
18:42:27
Да хромдрайвер

Matviy
18.03.2018
18:51:59
Ребята, а у всех миграции трансакциями нормально работают?
У меня че-то нифига, если ошибка - так не возвращется ничего назад

PowerAxis
18.03.2018
18:52:51
Что-то я где-то слышал что миграции не оборачиваются в транзакции

Matviy
18.03.2018
18:53:52
Зашибись, а зачем тогда safeDown и safeUp?
Должно ж работать, судя по документации
Или это у меня только? Просто вроде ж там ничего сложного, должно бы работать

Илья
18.03.2018
19:05:53
Не все базы данных поддерживают транзакции для DDL, думаю проблема в этом

Vladimir
18.03.2018
19:06:15
Я отсюда и узнал о скедиторе

☕ CunningFox
18.03.2018
19:08:11

Matviy
18.03.2018
19:08:26
Аааа
Я не знал
У меня MySQL, если что

☕ CunningFox
18.03.2018
19:09:03
И еще AI в мускуле независимо от транзакции инкрементирует/

Google

Павел
18.03.2018
19:09:03
Бывает.
Нукто тебя здесь за это не осудит

☕ CunningFox
18.03.2018
19:09:51

Vladimir
18.03.2018
19:20:56

Matviy
18.03.2018
20:43:34
Есть тут, кто хорошо RBAC шарит?

Сергей
18.03.2018
20:46:20
Вопрос-то какой?

Matviy
18.03.2018
20:46:26
Не совсем понимаю по наследованию: допустим, есть такой код:
$auth->addChild($role, $permission);
Если проверяется правило, рбак сначала смотрит не на него, а на родителький пермишн/элемент, а уже потом на сам пермишшн? И так по всей иерархии? Или как?

Сергей
18.03.2018
20:47:25
Эээ, а разве так можно?

Matviy
18.03.2018
20:47:38
Потому как с наследованием ролей понятно - родитель может все. что могут потомки. А с правилами не совсем - родитель может все правила?
Можно точно
В доке ж написано - пермишшн должен быть унаследован или от роли, или от другого пермишшна
По крайней мере, я так понимаю
То есть, проверка идет по иерархии сверху вних, пока не будет первого попадания?
Подразумевается, что пермишшны имеют правила
Извиняюсь, там должен быть пермишшн, а не правило) Запутлася)

Сергей
18.03.2018
20:50:18
В addchild передается item, а rule не является потомком item
Ну вот да)
Наследование также как в ролях, просто если у пермишена есть правило - оно будет отраьотано

Matviy
18.03.2018
20:51:43
Отредактировал, чтоб понятно было
С правилом понятно, это как бы одно целое с пермишшном

Google

Сергей
18.03.2018
20:52:11
Правило работает на пермишен

Matviy
18.03.2018
20:52:17
Да
Я просто в наследовании немного путаюсь

Сергей
18.03.2018
20:52:42
Когда нет правил понятно наследование?

Matviy
18.03.2018
20:53:31
Если есть, допустим, два пермишшна, с правилами, и должен сначала проверятся первый, а потом второй, то второй должен быть унаследован от первого, или наоборот?

Сергей
18.03.2018
20:53:39
Когда есть правило у пермишена, то оно всегда отрабатывает и если будет false, то считай, что у сотрудника нет этого пермишена

Matviy
18.03.2018
20:54:13
Когда нет правил понятно наследование?
Если по простому - есть роли, у них есть пермишшны, то да. А вот если некоторые пермишны при этом наследуютс еще друг от друга - тогда не совсем понятно

Сергей
18.03.2018
20:54:29
Также как роли с пермишенами)
Ровно также самая логика

Matviy
18.03.2018
20:55:22
Ето если простая иерархия, тогда да, понятно

Сергей
18.03.2018
20:56:26
Что значит сложная иерархи? Когда несколько наследников?

Matviy
18.03.2018
20:56:42
Когда у пермишшна, например, два предка
Хотя. я кажется начинаю понимать

Сергей
18.03.2018
20:56:55
Есть роль у нее может быть много прав, у каждого из прав ещё куча прав

Matviy
18.03.2018
20:57:14
Да. но если право иммет больше одного прдка. тогда как?
Так же может быть

Сергей
18.03.2018
20:57:27
Нарисуй дерево и тогда сразу понятно. Я всегда rbac паралельно визуализирую