我使用推进ORM并有两个表:
offer
id | description | ....
tag
id | Name | ....
offer_tag
offerid | tagid
其中offer_tag
是两个多表,两列都与各个表ID主键相关。
我的目标是通过PROPEL创建一个查询,搜索可能是或在offer.description或tag.name中的word
。
也就是说:如果我搜索eggs
,我可以收到所有在offer.description中有eggs
但不在tag.name中或在tag.name但在商品中有eggs
的商品。描述,或在两个表格列中。
有人可以帮我吗?
答案 0 :(得分:0)
解决:
假设我想搜索单词milk
,可以是标签,或者在商品(产品)描述中......代码是:
$of = OfferQuery::create()
->where('Offer.Description LIKE ? %milk%')
->or()
->useOfferTagQuery()
->useTagQuery()
->filterByName('milk')
->endUse()
->endUse();
->find();
此代码仅查找在多对多表(offer_tag)和匹配标记或描述中至少具有关系的商品(产品)。
如果offer
的描述中包含milk
但没有标记,则此优惠将从查询中排除。
希望可以帮助别人。