簡體   English   中英

無法將標量值用作數組-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 />

我只是想把它放在這里,所以答案是一個簡單的答案。

謝謝,我在$this->page = $this->page['page'] = $this->profiles->currentPage();有這段代碼$this->page = $this->page['page'] = $this->profiles->currentPage(); 別的地方

正如我在評論中說的那樣,做這樣的事情非常容易,因為它們當時是有效的。 就像使用=代替== ,僅通過它引起的級聯效應很難發現該錯誤。

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM