我想知道你是否可以帮助我,我对Laravel 4.1的发布感到非常兴奋,因为我确信新的多态关系可以解决我在Horizon上遇到的一点开发问题。不幸的是,尽管我付出了最大的努力,但我无法屈服于任何现有的关系。
基本上我想要的是一对多的多态关系,这样我就可以将查询“加入”任意数量的模型,这些模型可以有不同的数据库连接 - 我希望这在Eloquent中发生。
不幸的是,令我惊讶的是,这种关系似乎并不存在。我所看到的所有多态关系至少需要在连接表上的每个条目的多态表上输入一个条目 - 为我的目的大量不必要的数据重复 - 并且在很大程度上打败了我正在尝试做的事情。
以下是我提出的解决方法,但我不想开始制作我必须维护的自定义代码,如果我不需要,我确信这一定是可行的。有没有人知道如何在不诉诸下面的代码的情况下做到这一点,也有兴趣提出改进代码的技巧,如果不存在可能的拉请求:
public function morphOneToMany($foreignKey, $localKey, $name = null, $type = null, $id = null)
{
if (is_null($name))
{
list(, $caller) = debug_backtrace(false);
$name = snake_case($caller['function']);
}
list($type, $id) = $this->getMorphs($name, $type, $id);
$class = $this->$type;
return $this->hasMany($class, $foreignKey, $localKey);
}
有关laravel论坛的更多详情:http://forums.laravel.io/viewtopic.php?id=16677