umebius様
ご返信ありがとうございます!umebius様の記事やこちらへの投稿をいつも参考にさせてもらっています。
その後まだ解決できずにおります。そもそも
SearchProductBlockType.phpとSearchProductType.phpに記載していた内容がおかしかったのか、そもそもフォームが正常に表示されなかったので下記のように直しました。
$stock_available_arr = array('1' => '在庫あり商品のみを検索');
$builder->add('stock_available', 'choice', array(
'choices' => $stock_available_arr,
'label' => '在庫あり商品のみを検索',
'required' => false,
'expanded' => true,
'multiple' => true,
'mapped' => false,
));
また、ProductRepository.phpの方はQureyBuilderに使う条件は後で考えるとして、試しに
if (!empty($searchData['stock_available']) && count($searchData['stock_available']) > 0) {
$qb
->andWhere('p.id > 4')//仮にproduct_idが3や4の商品が表示されないかテスト
->setParameter('StockAvailable', $searchData['stock_available']);
}
このように適当に設定してみたのですが、product_idが3や4の商品も検索結果に表示されてしまうので、そもそもうまく動作していないようです...。
ご教示いただきました在庫なし商品数のカウントの件、ありがとうございます!
stock_statusが既に定義されているようですので、$qbの条件にはこちらを使えないか試してみたいと思います。