【问题标题】:How can I display a list of blade.php files but omit the extensions?如何显示blade.php 文件列表但省略扩展名?
【发布时间】:2021-01-13 07:44:42
【问题描述】:

我正在尝试回显文件夹中的文件列表。一个示例文件名是example.blade.php

我正在通过

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

我循环遍历数组

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

    var_dump($filename);
}

返回

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

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

我把结果放在一个变量中,并把它添加到控制器中的view数据中,这样就可以在Blade中使用了。当我尝试在 Blade 中生成列表时

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

我只能得到最后一个结果。

我似乎无法在这方面拼凑起来,所以任何帮助都将不胜感激,让我进步????

谢谢。

【问题讨论】:

    标签: php laravel file foreach laravel-blade


    【解决方案1】:

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

    $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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 2015-01-20
      • 1970-01-01
      • 2020-03-02
      • 2014-09-26
      • 1970-01-01
      • 2014-04-22
      相关资源
      最近更新 更多