Доступ к родительскому объекту в методе - PullRequest
2 голосов
/ 27 января 2011

У меня есть проблема, которую я даже не могу правильно назвать.Вот ситуация.

Я использую php framework (kohana3, но это не важно, я думаю), чтобы написать простой cms с записями и загрузками.Отношения:

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

Чтобы отобразить все записи с их загрузками, я использую этот код в view file:

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 objectили в настоящее время зацикленный идентификатор записи.Чего я хочу достичь, так это иметь возможность получить в настоящий момент зацикленный объект ввода внутри метода find_first_upload - это позволит мне создать внутри него foreach.

У вас есть идеи, как мне это написать?

Если у вас есть какие-либо вопросы, не стесняйтесь задавать их здесь.

Спасибо, Майк

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Извините за возрождение этой старой темы, но я что-то гуглил и наткнулся на это.Если у кого-то есть подобная проблема, игнорируйте принятый ответ, это правильный путь:

public function find_first_upload()
{
    return $this->uploads->find();
}
1 голос
/ 27 января 2011

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;
}
...