Я использую RedbeanPHP для своего уровня БД, и у меня есть связь между многими из двух таблиц.
Таблицы:
Где киоскмодели могут иметь несколько компонентов в модели 1. В настоящее время я не позволяю RedbeansPHP плавно добавлять / удалять таблицы БД. Мне нравится иметь ручной контроль над этим.
Итак, у меня есть таблица с именем: kioskmodels_components с 2 столбцами;
1. kioskmodels_id
2. component_id
Проблема, когда я добавляю новую запись в киоск-модели, используя функцию выдачи, как показано ниже:
if(!$this->isEdit()) $kiosk_model = R::dispense('kioskmodels');
$kiosk_model->import($this->getValidation()->data['kioskmodels']);
if(!empty($this->getValidation()->data['components'])) {
$kiosk_model->sharedComponentsList = $this->getValidation()->data['components'];
}
R::begin();
try {
R::store($kiosk_model);
R::commit();
} catch(\Exception $e) {
R::rollback();
throw $e;
}
Что происходит, когда я добавляю новую запись, я выдаю новый компонент киоскмодели. Если он редактирует существующую запись, R :: load используется ранее.
Однако при вставке новой киоскмодели и связывании ее с компонентами она хочет использовать таблицу с именем "components_kioskmodels". Когда это произошло, я согласился с этим и изменил таблицу БД, чтобы она соответствовала этому.
Однако, когда я протестировал настройку редактирования, он захотел использовать «kioskmodels_components», как у меня было изначально (что я бы предпочел).
Кроме того, внутри "$ this-> getValidation () -> data ['components']" как массива Beans с использованием R :: loadAll ('components', $ value); и значение приходит от пользователя.
К сожалению, документация не помогла в решении этой проблемы.