web-dev-qa-db-ja.com

get( 'Items')制限を設定するにはどうすればよいですか?

デフォルトでは、populateStateは、モデルのget('Items')関数の呼び出しを20項目に制限しているようです。

populateStateを書き換えることで、これをどのように上書きできますか?モデルに別の関数を書くことによって?私は2番目のオプションに行きました...

public function getAll(){
    return $this->_getList($this->getListQuery());
}

これはうまくいきますが、これを行うにはもっとJoomla風の方法があると思います-私はそれを見つけることができません。

5
codinghands

制限の「設定」に関するタイトルの質問に答えるために、これはJoomlaグローバル構成で行われます:「デフォルトリスト制限」。

オーバーライドするために、Joomlaコンポーネントは通常、モデルでこれを使用しているようです:$limit = 0を使用すると、すべてのアイテムが表示されます

protected function populateState($ordering = null, $direction = null)
{
    // set limit
    $this->setState('list.limit', $limit);
    // set start (eg. what record to begin pagination at)
    $this->setState('list.start', $value);
}
5
GDP

他の人が言ったように-これをモデルのpopulateState関数に入れます

$this->setState('list.limit', $limit); #limit=0 removes limit
$this->setState('list.start', $start);

ただし、これらの行がAFTERであることを確認する必要があります

parent::populateState($order, $dir);

または親クラスが値をオーバーライドします

4
mhorne

これも試してください

protected function populateState($ordering = null, $direction = null)
    {
    // Load the list state.
    $this->setState('list.start', 0);
    $this->setState('list.limit', 10);
    }
1
Jextn