如何显示 blade.php 个文件的列表但忽略扩展名?

How can I display a list of blade.php files but omit the extensions?

我正在尝试输出文件夹中的文件列表。示例文件名是 example.blade.php.

我正在通过

检索文件
$files = File::allFiles('path/to/my/files');

我遍历数组

foreach ($files as $file) {
    $filename = explode('.', $file->getFilenameWithoutExtension());

    var_dump($filename);
}

哪个returns

array(2) {
  [0]=>
  string(12) "introduction"
  [1]=>
  string(5) "blade"
}
array(2) {
  [0]=>
  string(4) "test"
  [1]=>
  string(5) "blade"
}

我知道我只需要 0 结果,因为这是有问题的文件名。

我把结果放在一个变量里,加到controller里的view数据里,这样就可以在Blade中使用了。当我尝试在 Blade

中生成列表时
@foreach($filenames as $filename) {
    {{ $filename }}
@endforeach

我只能得到最后的结果

我似乎无法将各个部分放在一起,因此非常感谢任何帮助并让我进步

谢谢。

您只是更新单个变量,该变量一次存储一个值并始终被下一个值替换,因此最后它会包含最后一个文件的名称。使用 [].

将每个文件名分配给数组
$filenames = [];
$files = File::allFiles('path/to/my/files');

foreach ($files as $file) {
    $filename = explode('.', $file->getFilenameWithoutExtension());
    $filenames[] = $filename[0];  // as you don't want blade or further extensions. 
}

return view('abc', ['filenames' => $filenames]);

现在您可以按照您提到的类似方式在您的视图中使用它。

@foreach($filenames as $filename) {
    {{ $filename }}
@endforeach