我有一些DBIx :: Class :: Core对象可以为各种数据库表建模。
对于其中一些模型(具有'队列'列的那些模型),我有另一个类注入subs(基本上,沿着它的队列状态“移动”模型对象)。
我想让那个班级注入has_many
关系ala
class($name)->has_many('queue_history','MySchema::Result::QueueHistory',
{ 'foreign.record_id'=>'self.id' },
{ where => { type => $name }} );
但我似乎无法正确注册关系(继续获得“无此关系”错误 - 但是,当在源上调用关系方法提供回关系时)。
关于什么是错的任何线索?
答案 0 :(得分: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
关系而添加的所有其他适当方法。