如何访问 Finder::files() 结果的第一个文件?
How to access the first file of a Finder::files() result?
如何使用 symfony/finder component 获取第一个文件?
我试过这样做:
<?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()
);
我得到了这个结果:
1
null
false
首先尝试 rewind
或 \var_dump(\iterator_to_array($finder));
。
一个迭代器的序列是:
- 倒带
- 有效
- current/key
- 下一个
- 有效
- current/key
- 下一个
- ...
$iterator = $finder->getIterator();
$iterator->rewind();
$firstFile = $iterator->current();
一线解决方案。
foreach ($finder as $file) {break;}
print "{$file->getPathname()} is the first file.\n";
如何使用 symfony/finder component 获取第一个文件?
我试过这样做:
<?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()
);
我得到了这个结果:
1
null
false
首先尝试 rewind
或 \var_dump(\iterator_to_array($finder));
。
一个迭代器的序列是:
- 倒带
- 有效
- current/key
- 下一个
- 有效
- current/key
- 下一个
- ...
$iterator = $finder->getIterator();
$iterator->rewind();
$firstFile = $iterator->current();
一线解决方案。
foreach ($finder as $file) {break;}
print "{$file->getPathname()} is the first file.\n";