я торчу некоторое время, потому что в случаях логического крючка я не мог загрузить contacts_cases отношения, как я сделал с другим пользовательских отношений, как это:Где я могу найти имена отношений по умолчанию в SugarCRM?
$bean->load_relationship('cases_lines');
$lines = $bean->cases_lines->getBeans();
$bean->load_relationship('contacts_cases');
$contacts->$bean->contacts_cases->getBeans();
Первым работали, последняя не был ,
я узнал, что я использовал неправильное название, потому что это отношения по умолчанию, и его имя «контакты», а не «contacts_cases», как я предполагал, так что я изменить свой код так:
$bean->load_relationship('contacts');
$contacts->$bean->contacts->getBeans();
и сейчас он работает отлично.
Я не нашел в документации разницу в именах между стандартными и настраиваемыми отношениями, я нашел решение выше, только отлаживая метод SugarBean 'load_relationship' и распечатывая загруженные отношения.
Эта строка кода
error_log('LOADED RELATIONSHIPS '.print_r($this->loaded_relationships, true));
распечатаны
Array\n(\n [0] => cases_lines\n [1] => contacts\n)\n
В Студии отношения выглядит как «contacts_cases», единственное место, где я нашел название «контакты» в модулях файле/Случаи/vardefs.php
'contacts' =>
array (
'name' => 'contacts',
'type' => 'link',
'relationship' => 'contacts_cases',
'source'=>'non-db',
'vname'=>'LBL_CONTACTS',
),
Также в таблице отношений имя_связи «conta» cts_cases.
Есть ли место, где я могу видеть настоящие имена, которые я должен использовать при вызове load_relationship или единственное решение, которое ищет в vardefs?
Спасибо, конечно, полезно иметь один файл для просмотра, мне просто странно, что я должен вызывать разные настройки по умолчанию и пользовательские отношения (по умолчанию с именем поля, custom с именем отношения). Я всегда использовал имя, появившееся в Studio, это первый раз, когда я заметил эту разницу. Я проверил ваш другой намек, и я заметил, что все мои пользовательские отношения называются одинаковыми с обеих сторон, может ли эта вещь зависеть от версии sugarcrm? – lyisia
Отношения - это «vardef» или «отношения», основанные не на том, является ли это запасом или обычаем, а основаны на том, что было в конвенции, когда оно было создано. Как ни странно, вы обнаружите фондовые отношения в обоих направлениях. Отчасти это связано с тем, является ли это отношением один/много или много/много. В любом случае, поэтому всегда полезно проверять файлы кеша :) –