2015-03-27 13 views
6

Jak mogę uzyskać pierwszy plik z symfony/finder component?Jak uzyskać dostęp do pierwszego pliku wyniku Finder :: files()?

Próbowałem zrobić tak:

<?php 
// ... 
$finder = new Finder(); 
$finder 
    ->files() 
    ->in($this->getKernel()->getRootDir().'/../web/uploads/') 
    ->name($filename); 

    if (!$finder->count()) { 
     throw new NotFoundHttpException('Image not found'); 
    } 

    dump(
     $finder->count(), 
     $finder->getIterator()->current(), 
     $finder->getIterator()->valid() 
    ); 

i uzyskać ten wynik:

1 
null 
false 
+1

To pytanie dotyczy sytuacji, gdy jeden chce uniknąć używania pętli foreach i instrukcji break, gdy jest się zainteresowanym tylko pierwszym resu lt. – k0pernikus

Odpowiedz

4

Sekwencja iteratora jest:

  • zwijanie
  • ważny
  • Prąd/klucz
  • obok
  • ważny
  • prąd/klucz
  • obok
  • ...

spróbować przewinąć pierwszy lub \var_dump(\iterator_to_array($finder));

7
$iterator = $finder->getIterator(); 
$iterator->rewind(); 
$firstFile = $iterator->current(); 
Powiązane problemy