drfcaw7460 2014-05-21 16:09
浏览 66
已采纳

laravel中的标签系统

In my users table i have column TAGS, that is serialized array, ex. serialize(['fun','promo'])

Then in my Campaign table I have also tags column similar to column in users table.

My question is how to display to user only those campaigns that have at least one tag same as in campaign tags. And if campaign has no tags display to every user no metter which tags they have. And if user has no tags set display every campaign to him.

How to query that?

$campaign = Campaign::where('tags', $user->tags);

This won't work I know because it has to search in serialized array. But how can I do that query?

  • 写回答

1条回答 默认 最新

  • dongqiao3927 2014-05-21 17:28
    关注

    You should normalize the data by storing the tag relationships in separate tables:

    campaign_tag -campaign_id -tag_id

    tag_user -tag_id -user_id

    The Laravel documentation (https://laravel.com/docs/5.2/eloquent-relationships#many-to-many) has good examples of how to then query/filter the data.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 经gamit解算的cors站数据再经globk网平差得到的坐标做形变分析
  • ¥15 GD32 SPI通信时我从机原样返回收到的数据怎么弄?
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!