получение подстроки члена переменной smarty - PullRequest
1 голос
/ 19 января 2011

У меня есть шаблон smarty, в котором есть набор переменных, представляющий собой пользовательский класс php, называемый «survey».Этот объект имеет переменную-член с именем "receiveientName".Когда я распечатываю переменную, используя следующий код:

{$survey->recipientName}

, она работает нормально.Имя получателя распечатывается, как и следовало ожидать.Однако, если я попытаюсь передать это в функцию, она не будет работать правильно.Возьмите следующий фрагмент кода:

{if substr($survey->recipientName,0,3) eq 'Bob'}
    Hello Bob
{else}
    You are not Bob
{/if}

Этот фрагмент всегда будет выводить на экран «Вы не Боб», даже если для параметраientientName установлено значение «Bob Smith».В качестве подтверждения концепции следующее работает, как и ожидалось:

{if substr("Bob Smith",0,3) eq 'Bob'}
    Hello Bob
{else}
    You are not Bob
{/if}

Вышеприведенное выведет «Hello Bob».

Аналогично, я заметил странное поведение и в других местах.Например, возьмем следующий фрагмент кода:

{assign var="recipname" value="$survey->recipientName"}

Это присвоит переменной имя-переменной значение "-> имя-получателя".Я что-то упустил?

1 Ответ

0 голосов
/ 18 апреля 2012

Проблема с подстрокой была не проблема, а простая ошибка позиционирования.

Проблема с назначением, однако, была связана с кавычками вокруг значения.Изменение его на {assign var = "responsename" value = $ survey-> receientName} исправило его.

...