2

这是我的问题:

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

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

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

我发现这是一个非常经常出现的问题

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

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

目前我只是想出了这个:

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

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

4

1 回答 1

1

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

您有一个在 Table.php 中调用getRelations的函数。所以你可以检索到一个对象的所有关系,然后用结果做你想要的。

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

所以 :

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

更多细节,这里是解析器 getRelations 方法

编辑:

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

于 2012-04-17T17:09:48.880 回答