在用户表中,我有列标记,即序列化数组,例如。序列化(“乐趣”,“宣传片”)
然后,在我的竞选表中,我也有标记列,类似于用户表中的列。
我的问题是,如何只向用户显示那些至少有一个标签与竞选标签相同的活动。如果活动没有标签给每个用户,就没有显示他们所拥有的标签。如果用户没有设置标签,则向他显示每个活动。
怎么质疑呢?
$campaign = Campaign::where('tags', $user->tags);我知道这是行不通的,因为它必须在序列化数组中进行搜索。但是我怎么做那个查询呢?
发布于 2014-05-21 17:28:56
应该将标记关系存储在单独的表中,从而使数据规范化:
campaign_tag -campaign_id -tag_id
tag_user -tag_id -user_id
Laravel (https://laravel.com/docs/5.2/eloquent-relationships#many-to-many)有关于如何查询/过滤数据的良好示例。
https://stackoverflow.com/questions/23788535
复制相似问题