无处不在,我读到了无法从反面设置连接,但是使用这种代码,不能小吗?
class Article
{
private $tags;
public function addTag(Tag $tag, $bothSide = true)
{
if ($bothSide) {
$tag->addArticle($this, false);
}
$this->tags[] = $tag;
}
}
class Tag
{
private $articles;
public function addArticle(Article $article, $bothSide = true)
{
if ($bothSide) {
$article->addTag($this, false);
}
$this->articles[] = $article;
}
}
通过使用一个简单的$bothSide
var,它应该可以工作,所以我无法理解为什么它不是推荐的方式去,你能告诉我吗?
PS:我正在使用文档的代码有起点(http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#many-to-many-bidirectional)
答案 0 :(得分:1)
我同意@mickdev ...不清楚你的意思是什么设置doctrine的反面连接。您可以在所有者侧或反面设置参数,但是当需要持续时,数据库原则中的更改将仅检查拥有方。像您的代码之类的东西可以帮助确保始终设置拥有方,但请确保您不创建无限循环。我认为这就是你用$ bothSides参数做的事情,虽然有些尴尬。在我看来,下面的代码有点清晰。这假设Article是您正在设置的ManyToMany关系中的拥有方。
for row in 0..<board.count
{
for col in 0..<board[row].count
{
if row == 0 && col != 0
{
board[row][col] = ROW AS CHARACTER
}
else if col == 0 && row != 0
{
board[row][col] = A - J
}
else if(col != 0 && row != 0)
{
board[row][col] = "*"
}
}
}