gpt4 book ai didi

php - 查找 "a"行是否与 ORM 中的 "b"行有关系的最有效方法?

转载 作者:行者123 更新时间:2023-11-29 03:09:44 25 4
gpt4 key购买 nike

这是我的问题:

  • 我在 SomeTable 和 SomeOtherTable 之间有 1-N 关系。
  • 用户想修改b行,但只有a行和b行有关系才可以修改
  • 因此,我需要查找 SomeTable 中的行 a 与 SomeOtherTable 中的行 b 是否有关系

如果可以,请提供一般性答案,然后提供针对 symfony 1.4 和 Doctrine 的具体答案。这对于在多个框架中工作的更多人和我自己很有用。

我需要它来处理某些表的 CRUD 权限。

我发现这是一个反复出现的问题

也许有解决这个问题的模式或插件?

  • 您如何充分利用 symfony 缓存系统?

目前我刚想到这个:

$someRow = Doctrine_Query::create()->from('SomeTable')->
where('id = ?', $id_someTable)->
andWhere('id_relation = ?',$id_someOtherTable)->execute();
return $someRow->count() > 0;

出于某种原因,我觉得这很丑......

最佳答案

无论如何,你的标题比你的文字更明确。

你有一个函数 called getRelations in Table.php .因此,您可以检索与一个对象的所有关系,然后对结果进行任何您想要的操作。

/**
* Retrieves all relation objects defined on this table.
*
* @return array
*/
public function getRelations()
{
return $this->_parser->getRelations();
}

所以:

$relations = Doctrine_Core::getTable('SomeTable')->getRelations();

更多详情,here is the parser getRelations method .

编辑:

如果你想尝试给定的关系,你可以使用 hasRelation .

关于php - 查找 "a"行是否与 ORM 中的 "b"行有关系的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10195525/

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