У меня есть таблица с названием settings, которая содержит типичную информацию о настройках, например, isactive, активацииdate, ... которая должна быть связана со многими другими объектами.Теперь мне было интересно, смогу ли я поместить это в SettingsBehavior
, чтобы мне просто нужно было загружать Поведение во всех объектах таблицы, которые мне нужны.Я думал добавить что-то вроде этого в SettingsBehavior::beforeFind()
:
$event->getSubject()
->hasOne('Settings')
->setName('Settings')
->setForeignKey('parent_id')
->setConditions(['Settings.parenttype' => $event->getSubject()->getTable()]);
Но запрос уже создан.По крайней мере, я могу добавить установочную сущность к сущности, используя SettingsBehavior
.В Поведениях initialize()
насколько я знаю, у меня нет ссылки на предмет.Затем я попытался сделать это в SettingsBehavior::beforeFind()
:
$query->leftJoin('Settings', [
$event->getSubject()->getAlias() . '.id = Settings.parent_id',
'Settings.parenttype' => 'users'
]);
Но это также не добавило настройки для моего найденного объекта.Кто-нибудь пробовал что-то похожее, или есть идея, как это сделать?Может быть, я даже ошибаюсь, пытаясь сделать что-то подобное через поведение?Спасибо!