gpt4 book ai didi

mysql - 解决此推进 "Cannot redeclare function"错误的最正确方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 07:08:21 26 4
gpt4 key购买 nike

我有以下表格:

user, logbook, user_logbook

用户日志是一个联结表(schema.xml 中的isCrossRef="true"),包含user_idlogbook_id 外键。

我还想记住任何给定用户当前选择的日志,所以我也在我的 user 表中放了一个 current_logbook_id,并给它一个外键。但是,在我的 BaseUserQuery.php 文件中,我得到了两个 filterByLogbook() 函数。

我知道当你有两个指向同一个表的外键时,来自同一个表,你会得到像 getUserRelatedBySomething()getUserRelatedBySomethingElse() 这样的函数,但在这种情况下最好的做法是什么?

我当然可以只删除外键并只使用保存的 ID,或者我想我可以创建一个新的联结表(尽管这看起来不正确)。在这种情况下,在 MySQL Propel 中“做正确的事” 方面最好的做法是什么(希望我能够做到这两点!) .

最佳答案

在您的 schema.xml 中添加 phpName and refPhpName attributes到用户表定义中的外键:

  <table name="user" phpName="User">
...
<foreign-key foreignTable="logbook" phpName="CurrentLogBook" refPhpName="CurrentLogBookUser">
<reference local="current_logbook_id" foreign="id"/>
</foreign-key>
...
</table>

那么您应该得到 filterByCurrentLogBook()filterByCurrentLogBookUser() 函数并且没有冲突。

关于mysql - 解决此推进 "Cannot redeclare function"错误的最正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12277239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com