以下是我的代码,来自搜索结果页面:
{if $listing.SalaryType!=''&& $listing.Salary!=''}<dt>Salary:</dt>
<dd>{$listing.Salary} {$listing.SalaryType}</dd>{/if}
这给出了这个输出:
它表示'Array'而不是正确的值。知道我可以从哪里开始寻找解决这个问题的方法吗? “阵列”来自哪里?
以下是一些更多信息。在作业详细信息页面上,此代码:
<div class="smallListingInfo"><strong>[[FormFieldCaptions!Salary]]:</strong> {display property=Salary} [[$listing.SalaryType]]</div>
给出这个输出:
您可以看到工资值在此实例中有效,这有何不同?
使用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'?
答案 0 :(得分:1)
这意味着{$listing.Salary}
值是array而不是您期望的值。当要求PHP将数组视为字符串时,它将使用值“Array”。修复您的数据结构和/或模板以使用正确的值。
$foo = array();
echo $foo; // echoes "Array"
答案 1 :(得分:1)
$listing.Salary
似乎是一个数组。
在HTML代码中插入{debug}
以转储调试控制台,并显示已分配的变量。
在Smarty文档中搜索“debug”(抱歉,我现在无法发布链接)
如何访问Smarty中的数组元素也可以在文档中找到,只需搜索“变量”
答案 2 :(得分:0)
{$ listing.Salary}是一个数组。
在PHP代码中,传递给模板的对象/数组:'Salary'索引或属性应该返回一个整数而不是数组。