访问方法中的父对象

时间:2011-01-27 20:07:58

标签: php oop frameworks kohana kohana-3

我有一个问题,我甚至无法正确命名。情况就是这样。

我正在使用php框架(kohana3,但我认为这并不重要)编写带有条目和上传的简单cms。关系是:

Entries -> has_many -> Uploads
Uploads -> belongs_to -> Entries

要显示上传的所有条目,我在查看文件中使用此代码:

foreach( $entries as $entry ) 
{
     foreach( $entry->upload->find_all() as $uploads ) 
     {
          foreach( $uploads->find_all() as $upload )
          {
               echo $upload->file;
          }
     }
}

现在我想在Entry模型中创建一个名为find_first_upload()的方法,它将返回第一个上传的元素。以下是它的未来用法:

foreach( $entries as $entry ) 
{
     echo $entry->find_first_upload()->file;
}

并且重要的是我不想将任何变量传递给find_first_upload()方法,例如$entry对象或当前循环的条目ID。 我想要实现的是能够在find_first_upload方法中获取当前循环的条目对象 - 它将允许我在其中创建foreach。

您有什么想法我可以编码吗?

如果您有任何疑问,请随时在这里询问。

谢谢, 麦克

2 个答案:

答案 0 :(得分:1)


public function find_first_upload() {
    $result = 0;
     foreach( $this->upload->find_all() as $uploads ) 
         {
              foreach( $uploads->find_all() as $upload )
              {
                if(empty($result))
                   $result = $upload;
              }
         }
        return $result;
}

答案 1 :(得分:1)

很抱歉恢复了这个老话题,但是我在谷歌上搜索了一些东西而且偶然发现了这个问题。如果有人有类似问题,请忽略接受的答案,这是正确的方法:

public function find_first_upload()
{
    return $this->uploads->find();
}