带有逗号分隔字段的Laravel雄辩关系

带有逗号分隔字段的Laravel雄辩关系,laravel,eloquent,has-many,Laravel,Eloquent,Has Many,我继承了一个DB,其中有两个需要链接的表,一个是users表,一个是usstates表。users表中有一个名为states\u visted的字段,它是一个逗号分隔的字段(例如,纽约、阿拉巴马和德克萨斯将存储为8、2、41)。我想定义一个有许多关系,但不幸的是在集合中查找(states.id,users.states\u visted)不起作用,因为Laravel分别查询两个表,所以它们在查询过程中不会“看到”彼此 解决这个问题的任何帮助都将是惊人的 如果你想使用Laravel关系,你必须重构

我继承了一个DB,其中有两个需要链接的表,一个是
users
表,一个是
usstates
表。
users
表中有一个名为
states\u visted
的字段,它是一个逗号分隔的字段(例如,纽约、阿拉巴马和德克萨斯将存储为
8、2、41
)。我想定义一个
有许多关系,但不幸的是
在集合中查找(states.id,users.states\u visted)
不起作用,因为Laravel分别查询两个表,所以它们在查询过程中不会“看到”彼此


解决这个问题的任何帮助都将是惊人的

如果你想使用Laravel关系,你必须重构以使用。您的另一个选择是使用MySQL find_in_set函数,然后为其编写自己的逻辑。

我创建了自定义关系约束来解决这个问题

|

或者您也可以使用添加此包

composer需要ghanuz/relations

我只测试了select子句,没有测试insert/update using associates功能


但这可能会有所帮助。

看看我在类似问题下发布的答案: