PHP / Smarty дает «Массив» вместо правильного значения? - PullRequest
0 голосов
/ 09 ноября 2010

Вот мой код со страницы результатов поиска:

{if $listing.SalaryType!=''&& $listing.Salary!=''}<dt>Salary:</dt>
<dd>{$listing.Salary} {$listing.SalaryType}</dd>{/if}

, который дает такой вывод:

Screenshot

Вместо «Массив» вместоправильное значение.Любая идея, где я могу начать искать, чтобы решить эту проблему?Откуда идет «Массив»?

Вот еще немного информации.На странице сведений о работе этот код:

<div class="smallListingInfo"><strong>[[FormFieldCaptions!Salary]]:</strong> {display property=Salary} [[$listing.SalaryType]]</div>

Дает этот вывод:

second example

Вы можете увидеть, как работает значение заработной платы в этом случаечто отличается?

Используя консоль отладки smarty, я получил следующее:

Title => Services Senior Manager
EmploymentType => Contractor
JobCategory => Accounting,Admin-Clerical
Occupations => empty
Country => United States
Salary => Array (5)
  add_parameter => 2
  value => 30000
  currency_sign => £
  course => 1
  currency_code => USD
State => California
SalaryType => per month
City => Los Angeles

Как получить значение, отображаемое вместо 'Array'?

Ответы [ 3 ]

1 голос
/ 09 ноября 2010

$listing.Salary представляется массивом.

Вставьте {debug} в свой HTML-код для вывода на экран консоли отладки, которая показывает назначенные переменные.

Найдите «debug» вдокументация Smarty (извините, я не могу публиковать здесь ссылки прямо сейчас)

Как получить доступ к элементам массивов в Smarty, также можно найти в документации, просто найдите «переменные»

1 голос
/ 09 ноября 2010

Это означает, что значение {$listing.Salary} представляет собой массив вместо ожидаемого значения.Когда PHP попросят рассматривать массив как строку, он будет использовать значение «Массив».Исправьте ваши структуры данных и / или шаблон, чтобы использовать правильное значение.

$foo = array();
echo $foo; // echoes "Array"
0 голосов
/ 09 ноября 2010

{$ list.Salary} является массивом.

В коде PHP объект / массив, передаваемый шаблону: индекс или атрибут 'Salary' должен возвращать целое число, а не массив.

...