Получение значения целочисленного атрибута concrete5 для сравнения - PullRequest
0 голосов
/ 29 марта 2019

Я использую систему (concrete5) для редактирования некоторых php на месте. Я пытаюсь следующее:

use Concrete\Core\User\UserInfo;
$ui = UserInfo::getByID(3);
$answer = $ui->getAttribute('Q1');
if ($answer >= 5)
    print "True";

Когда я вставляю проверку на $answer, вставляя print $answer, он возвращает 6 (это данные атрибута, хранящиеся у пользователя). Тем не менее, if не оценивается как истина. А идеи почему? Должен ли я набрать вывод или что-то?

Edit: Я приведу тип int к тому же результату.

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Выбранный ответ не является правильным подходом.

Использование $ui->getAttribute('Q1','display').

use Concrete\Core\User\UserInfo;
$ui = UserInfo::getByID(3);
$answer = $ui->getAttribute('Q1','display');
if ($answer >= 5)
print "True";

См. Документацию concrete5, чтобы узнать больше об атрибутах https://documentation.concrete5.org/developers/attributes/attribute-value-objects-and-output-formatting

1 голос
/ 29 марта 2019

Если $ answer - это объект с определенной функцией __toString, то все, что там описано, может произойти. Попробуйте что-то вроде этого:

use Concrete\Core\User\UserInfo;
$ui = UserInfo::getByID(3);
$answer = $ui->getAttribute('Q1');
$answer = $answer.'';
if ($answer >= '5')
    print "True";
...