1

カテゴリのフロントエンドで複数選択を使用しています。フォームが送信されたら、カテゴリ配列を文字列に変換するシリアル化された形式でカテゴリを保存します。

serialize($_Params['categories'])」のように。

データを非シリアル化した後にコレクションを作成しようとすると、意図的な結果が表示されません。

私が作成しようとしているコレクション -

/* Store Collection */
$_Params = $this->getRequest()->getParams();

if($_Params['category']):
    $_Collection = $this->getStoreCollection()
        ->addFieldToFilter('approval_status', array('eq' => 'approved'))
        ->addFieldToFilter(unserialize('categories'), array(
        'in' => $_Params['category'],
        ))
        ->getData();

どうすればそれを意図的にすることができますか。

助けてください!

- ありがとう

4

1 に答える 1

1

変数ではない unserialize('categories') のようです。また、 $_Params['category'] はシリアライズ値だったと述べているので、これがあなたが達成しようとしていると思います

/* Store Collection */
$_Params = $this->getRequest()->getParams();

if($_Params['category']){
    $_Collection = $this->getStoreCollection()
        ->addFieldToFilter('approval_status', array('eq' => 'approved'))
        ->addFieldToFilter('categories', array(
        'in' => unserialize($_Params['category']),
    ))
    ->getData();
}
于 2012-11-06T07:09:34.160 に答える