Python всегда проходит по значению. Это означает, что назначение параметра никогда не будет влиять на внешнюю сторону функции. self
- это просто имя, которое вы выбрали для одного из параметров.
Проблема в логике связана с тем, что сначала $bean
не имеет доступа к настраиваемым полям, поэтому я должен вызывать их, используя $bean->custom_fields->retrieve();
. Также поле имени всегда пустое, мне пришлось использовать DBManager , чтобы получить только поле имени .
Логика окончательной логической ловушки следующая:
<?php
class ListViewLogicHook
{
public function getProperName($bean, $event, $arguments)
{
// Get access to custom fields from $bean
$bean->custom_fields->retrieve();
// Get access to name property using DBManager because $bean->name return null
$sql = "SELECT name FROM accounts WHERE id = '{$bean->id}'";
$name = $GLOBALS['db']->getOne($sql);
// Assign a value to non-db field
$bean->name_c = empty($name) ? $bean->nombre_persona_c : $name;
}
}
Я не был знаком с методом $bean->custom_fields->retrieve()
, и в настоящий момент я не знаю, почему пустое поле name
и Я понимаю, что другие поля остаются пустыми.
Я надеюсь, что это полезно.