Я пытаюсь изящно обрабатывать многие многие данные отношений в объекте ATK4 CRUD. Я могу вручную добавить связанные таблицы текущей записи в качестве объектов sub CRUD, а isEditing(), но при этом я разбиваю кнопку «Добавить новую». Код выглядит следующим образом:ATK4: Обработка многих-многих отношений в CRUD - Добавление subCRUD без взлома. Добавление нового
function page_projects($p) {
$crud = $this->add('CRUD');
$crud->setModel('Project', null, array('Title', 'School'));
if($crud->grid){
$crud->grid->addPaginator(10);
$crud->grid->addQuicksearch(array('Title','School'));
}
if($crud->isEditing()){
$vForm = $crud->form;
$keywords = $vForm->add('CRUD');
$keywords->entity_name = 'Keyword';
$keywords->setModel(
$crud->model->load($crud->id)->
ref("mProjectKeywords"));
//Other snipped m:m rels
}
}
вопрос просто, что $ crud-> идентификатор не заполняется (и не должен быть) при создании новой записи, что означает, что я не могу порождать новый суб cruds. Обойти это можно использовать:
if($crud->isEditing() && !is_null($crud->id)) {
при проверке isEditing(), но это просто останавливает суб CRUDS от того экземпляра, чтобы избежать нагрузки() сгенерирует исключение. Я попытался взглянуть на loadAny() и tryLoad() и не делать то, что хочу во многих контекстах: загружать запись, если она существует, генерировать новую в противном случае.
Кто-нибудь знает, как лучше справиться с этим, и если его еще нет в рамочке, то каков наилучший угол для атаки на эту проблему?
Спасибо за подтверждение, это в значительной степени то, что я думал. Если бы мы собирались сгладить это в рамках, какой был бы лучший способ справиться с этим ...? т. е. похоже, что может использоваться специальный крюк для сохранения сообщений, если (is_null ($ crud-> id)). В среднесрочной и долгосрочной перспективе я хочу улучшить гибкость многих отношений и построить для них библиотеку компонентов формы. –