Это действительно должно быть очень легко. Я собираюсь показать вам различные способы сделать это в зависимости от того, что вы хотите получить, и информации, которая у вас под рукой. Конечно, я знаю, что вы знаете fieldname
, хотя я бы порекомендовал войти в вашу таблицу tblcustomfields
вашей установки WHMCS и получить значение id
для этого настраиваемого поля. Теперь давайте перейдем к коду:
Первый: укажите следующий код:
require("init.php");
use WHMCS\Database\Capsule;
Второе: объявить известную переменную:
Я предполагаю, что у вас уже есть значения, которые вы знаете. Так что я просто собираюсь использовать здесь свои псевдо значения:
$clientID = 12;
$customFieldID = 1;
$customFieldName = 'Where did you hear about us?';
Третье: добавить код для извлечения данных
Я собираюсь использовать четыре кода. Выберите то, что лучше всего соответствует вашим потребностям.
A: Получить значение настраиваемого поля для 1 клиента. У вас есть идентификатор клиента и имя настраиваемого поля
$customFieldValue1 = Capsule::table('tblcustomfields')
->join('tblcustomfieldsvalues','tblcustomfieldsvalues.fieldid','=','tblcustomfields.id')
->where('tblcustomfieldsvalues.relid','=',$clientID)
->where('tblcustomfields.fieldname','=',$customFieldName)
->value('tblcustomfieldsvalues.value');
//Use the retrieved vaue e.g echo
echo $customFieldValue1."<br/>";
B: Получить значение настраиваемого поля для 1 клиента. У вас есть идентификатор клиента и идентификатор пользовательского поля
$customFieldValue2 = Capsule::table('tblcustomfieldsvalues')
->where('relid',$clientID)
->where('fieldid',$customFieldID)
->value('value');
//Use the retrieved vaue e.g echo
echo $customFieldValue2."<br/>";
C: Получить значение настраиваемого поля для ВСЕХ клиентов. У вас есть идентификатор клиента и имя настраиваемого поля
$customFieldValues1 = Capsule::table('tblcustomfields')
->join('tblcustomfieldsvalues','tblcustomfieldsvalues.fieldid','=','tblcustomfields.id')
->select('tblcustomfieldsvalues.value as value','tblcustomfieldsvalues.relid as client')
->where('tblcustomfields.fieldname','=',$customFieldName)
->get();
//use retrieved values
foreach($customFieldValues1 as $customField){
$clientId = $customField->client;
$customFieldValue = $customField->value;
echo $clientId." : ".$customFieldValue."<br/>";
}
C: Получить значения настраиваемых полей для ВСЕХ клиентов. У вас есть идентификатор клиента и идентификатор пользовательского поля
$customFieldValues2 = Capsule::table('tblcustomfieldsvalues')
->select('relid as client','value')
->where('fieldid',$customFieldID)
->get();
//use retrieved values
foreach($customFieldValues2 as $customField){
$clientId = $customField->client;
$customFieldValue = $customField->value;
echo $clientId." : ".$customFieldValue."<br/>";
}
Пожалуйста, дайте мне знать, если это отвечает на ваш вопрос.
Для получения дополнительной информации о том, как писать запросы с laravel, которые WHMCS в настоящее время использует для взаимодействия с базами данных, вы можете посетить https://laravel.com/docs/5.2/queries