Konstantin
Konstantin
абсолютно нормальный подход
Дмитрий
захожу в редактирование кампании - и вручную выствляю цену на каждую страну, потом сохраняю
Konstantin
ну или например бывает, что статья связана с тегами, но при этом у тегов есть приоритет
Konstantin
короче нормальная картина
Дмитрий
ну да смысл такой примерно
Konstantin
разве что придутся завести модель для промежуточной таблицы, и связь между странами и кампаниями сделать не viaTable, а via
Дмитрий
Konstantin
ну тогда вот и ответ
Дмитрий
если не сложно - объясни плиз подробнее, впервые сталкиваюсь с такой штукой
Дмитрий
туплю
Дмитрий
via - это не таблица, а связь, вот и какую связь прописать
Konstantin
public function getOrderItems() {
return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
}
public function getItems() {
return $this->hasMany(Item::className(), ['id' => 'item_id'])
->via('orderItems');
}
Konstantin
вот прямо из доки
Konstantin
есть order (код из него)
Konstantin
и промежуточная таблица, которую они назвали OrderItem
mr.
Konstantin
но на нее есть отдельная модель
Alexey
Здравствуйте. Подскажите корректный способ передать из контроллера в вид результат прав доступа, описанных в behaviors(). Нужно для отображения элементов в зависимости от прав. Не могу разобраться, как в экшн контроллера передать результат обработки прав.
Дмитрий
Anonymous
он что с чем связать-то хочет? Какая коненчая цель-то?
Anonymous
чтобы получить цену для конкретной страны, надо знать id компании и id страны.
Дмитрий
я хочу при сохранении у меня всё по местам записалось
Дмитрий
*чтобы
Anonymous
ты хочешь иметь 1 форму для заполнения цен для всех стран, так?
Дмитрий
посредством описаных связей
Konstantin
я бы при сохранении все вручную сохранял, или нашел бы подходящее поведение для many-many, которое это поддерживает
Дмитрий
верно!
Konstantin
из коробки сохраняться не будет
Konstantin
читать - да
Anonymous
ща, где видел подобное.
Дмитрий
ну да читать читаю норм
Дмитрий
писать - проблема
Дмитрий
use voskobovich\linker\LinkerBehavior;
Дмитрий
это поведение юзаю везде
Дмитрий
где связ таблы
Дмитрий
но когда появилось доп-поле - появилисб сложности
SiZE
Konstantin
ну
Konstantin
я не уверен, что линк здесь сработает
Konstantin
с хранением дополнительных данных в промежуточной таблице
Anonymous
во https://yiiframework.com.ua/ru/doc/guide/2/input-tabular-input/
Konstantin
ой
Konstantin
i stand corrected
Konstantin
public void link ( $name, $model, $extraColumns = [] )
Anonymous
угу, или link.
Anonymous
ахах, сам про него забыл.
Дмитрий
то есть линк кушает доп поля
Konstantin
$country->link('campaigns', $campaign, ['price' => 12345])?
Лёша
$extraColumns
Konstantin
вот
Konstantin
где Country::getCampaigns() - это описание связи
Дмитрий
да я тож не знаю чем лучше, меня испугало слово deprecated soon
Дмитрий
я сразу новую юзаю
Дмитрий
Niko
Привет! Оставлял issue на yii2. Я так понимаю, что это не баг?
https://github.com/yiisoft/yii2/issues/14634
Anonymous
о, на соседнем рассказали как сделать проще.
Дмитрий
Anonymous
да-да, я про гиттер.
Дмитрий
ну да щас попробую через отдельный класс
Дмитрий
в любом случае всем большое спасибо!!!
Лёша
Niko
я создал, добавил в нем поведение. Однако оно срабатывает при прямом сохранении этого объекта
Niko
Сейчас приведу пример
mr.
На счет Many2Many behavior советую от yii2tech https://github.com/yii2tech/ar-linkmany
Niko
$user->link('posts') - не работает
$userPost->save() - срабатывает
mr.
Ivan
Дмитрий
Ivan
Иначе у тебя две околомагические константы в двух AR связи M-M
Дмитрий
Ivan
Название промежуточной таблицы
Niko
я тоже создаю AR для промежуточной таблицы. Мало ли - завтра ->link('obj') сломается, так я явно задам через ModelRelationController->create
Дмитрий
ну чот щас читаю - не вижу про доп-поля
Niko
@crestoff $model->link('posts', ['row_in_via_table' => 'value'])
Niko
короче так понимаю, что это не баг для TimestampBehavior, если кроме меня это никому не нужно
Дмитрий