EC-CUBE4の管理画面の商品一覧でショップ用メモ検索できるようにする方法です。
まずCusotomizeディレクトリ内にDoctrine/Queryディレクトリを設置してください。
次に以下のようにAdminProductNoteSearchCustomizer.phpを作成してQuery内に設置してください。
<?php
namespace Customize\Repository;
use Eccube\Doctrine\Query\QueryCustomizer;
use Eccube\Doctrine\Query\WhereClause;
use Eccube\Repository\QueryKey;
use Doctrine\ORM\QueryBuilder;
/**
* 管理画面の商品一覧でショップ用メモを検索できるようにする
*
* @author Akira Kurozumi <info@a-zumi.net>
*/
class AdminProductNoteSearchCustomizer implements QueryCustomizer {
public function customize(QueryBuilder $builder, $params, $queryKey)
{
if ($params['id']) {
// QueryBuilderに対してショップ用メモを検索対象するように設定
$builder->orWhere("p.note LIKE :note");
$builder->setParameter("note", '%'.$params['id'].'%');
}
}
public function getQueryKey(): string
{
return QueryKey::PRODUCT_SEARCH_ADMIN;
}
}
以上で完成です。
