1

好的,我希望能够正确解释这一点,所以就到这里。我正在使用 phpActiveRecord 并尝试通过另一个关联创建特定关联。链接表并不完全是多对多,因为我已经能够创建那些没有任何实际问题的。让我给你详细的...

这是一个已经存在的数据库模式,在命名表或字段时并未考虑 AR。所有表都在一个单一的引用中,所有引用其他表的字段都以“fk_”为前缀,并且不遵循正常的命名模式。该关联是从文章到网站再到客户。客户可以有很多网站,网站可以有很多文章。目标是能够通过网站从文章中引用客户。到目前为止,这就是我所拥有的:

Client
  $has_many (
    array('websites', 'foreign_key' => 'fk_client_id')
  )

Website
  $belongs_to (
    array('client', 'foreign_key' => 'fk_client_id')
  )
  $has_many (
    array('articles', 'foreign_key' => 'fk_website_id_client')
  )

Article
  $belongs_to (
    array('client_website', 'class_name' => 'Website', 'foreign_key' => 'fk_website_id_client'),
    array('client', 'through' => 'client_website')
  )

我已经简化了一些代码,所以不,我没有忘记“=”符号或类似的东西。现在,访问client_website返回正确的对象,以便关联工作。向下钻取也可以,我可以看到每个客户的多个网站,以及通过网站的多篇文章。这似乎应该可以正常工作......我只是缺少一些基本的东西,但我似乎找不到它。我有一种感觉,字段名称被奇怪地标记是一个问题,但我无法验证这一点。

感谢您对此的任何帮助!

4

0 回答 0