3

我有一些 DBIx::Class::Core 对象,它们对各种数据库表进行建模。

对于其中一些模型(那些具有“队列”列的模型),我有另一个类注入潜艇(基本上,沿着它的队列状态“移动”模型对象)。

我也想让那个类注入has_many关系 ala

class($name)->has_many('queue_history','MySchema::Result::QueueHistory',
 { 'foreign.record_id'=>'self.id' },
 { where => { type => $name }} );

但我似乎无法正确注册关系(不断收到“没有这样的关系”错误 - 但是,当在源上调用关系方法时会返回关系)。

关于出了什么问题的任何线索?

4

1 回答 1

2

经过一番挖掘,以下工作:

$class = $schema->class($name)->has_many('queue_history','MySchema::Result::QueueHistory',
 { 'foreign.record_id'=>'self.id' },
 { where => { type => $name }} );

$schema->unregister_source($name);
$schema->register_class($name,$class);

关键是取消注册/注册方法,以便生成通过新has_many关系添加的所有适当的其他方法。

于 2010-04-23T23:47:45.273 回答