不能将标量值用作数组 - PHP Octobercms
Cannot use a scalar value as an array - PHP Octobercms
我以前有过这个工作,但没有。我的模型中有一个数组,在一个组件中调用该数组并尝试将其设置为页面变量,但它拒绝拥有它。
型号 - Profile.php
public static $ajaxSortingOptions = array(
'count_views desc' => 'Most Popular',
'count_photos desc' => 'Most Photos',
'count_videos desc' => 'Most Videos',
'created_at desc' => 'Recent Members',
'random' => 'Random'
);
组件 - Profiles.php
public $sortingOptions;
public function getAjaxSortOrderOptions()
{
return Profile::$ajaxSortingOptions;
}
public function onRun()
{
$this->listProfiles();
$this->page['sortingOptions'] = $this->getAjaxSortOrderOptions();
}
在我看来
<select class="dropdown" name="Filter[sort]">
<option value="">Select</option>
{% for key,value in sortingOptions %}
<option value="{{key}}">{{ value }}</option>
{% endfor %}
</select>
不能将标量值用作数组
/var/www/public/plugins/libre/membership/components/Profiles.php line 147
有问题的行
$this->page['sortingOptions'] = $this->getAjaxSortOrderOptions();
请看这个简单的测试例子:
class foo{
protected $page=1;
public function __construct(){
$this->page['bar'] = 'hello';
}
}
new foo;
输出
<br />
<b>Warning</b>: Cannot use a scalar value as an array in <b>[...][...]</b> on line <b>9</b><br />
我只是想把它放在这里,所以答案是一个实际的答案。
Thanks, I had this bit of code in $this->page = $this->page['page'] = $this->profiles->currentPage();
somewhere else
正如我在评论中所说,做这样的事情很容易,因为它们在当时是有效的。就像使用 =
代替 ==
一样,很难仅通过它引起的级联效应来发现错误。
干杯!
我以前有过这个工作,但没有。我的模型中有一个数组,在一个组件中调用该数组并尝试将其设置为页面变量,但它拒绝拥有它。
型号 - Profile.php
public static $ajaxSortingOptions = array(
'count_views desc' => 'Most Popular',
'count_photos desc' => 'Most Photos',
'count_videos desc' => 'Most Videos',
'created_at desc' => 'Recent Members',
'random' => 'Random'
);
组件 - Profiles.php
public $sortingOptions;
public function getAjaxSortOrderOptions()
{
return Profile::$ajaxSortingOptions;
}
public function onRun()
{
$this->listProfiles();
$this->page['sortingOptions'] = $this->getAjaxSortOrderOptions();
}
在我看来
<select class="dropdown" name="Filter[sort]">
<option value="">Select</option>
{% for key,value in sortingOptions %}
<option value="{{key}}">{{ value }}</option>
{% endfor %}
</select>
不能将标量值用作数组
/var/www/public/plugins/libre/membership/components/Profiles.php line 147
有问题的行
$this->page['sortingOptions'] = $this->getAjaxSortOrderOptions();
请看这个简单的测试例子:
class foo{
protected $page=1;
public function __construct(){
$this->page['bar'] = 'hello';
}
}
new foo;
输出
<br />
<b>Warning</b>: Cannot use a scalar value as an array in <b>[...][...]</b> on line <b>9</b><br />
我只是想把它放在这里,所以答案是一个实际的答案。
Thanks, I had this bit of code in
$this->page = $this->page['page'] = $this->profiles->currentPage();
somewhere else
正如我在评论中所说,做这样的事情很容易,因为它们在当时是有效的。就像使用 =
代替 ==
一样,很难仅通过它引起的级联效应来发现错误。
干杯!