我想在我的.blade.PHP中显示一个数组,但它无法正常工作,所以我的控制器看起来像这样:
class WatchController extends Controller { public function index() { $watchFolderPath = 'C:\\xampp\\htdocs\\Pro\\rec\\'; $watchFolder = $this->dirToArray($watchFolderPath); return view('watch.new')->with('watchFolder',$watchFolder); } # Get Directories of Path as Array function dirToArray($dir) { $result = array(); $cdir = scandir($dir); foreach ($cdir as $key => $value) { if (!in_array($value,array(".",".."))) { if (is_dir($dir . DIRECTORY_SEPARATOR . $value)) { $result[$value] = $this->dirToArray($dir . DIRECTORY_SEPARATOR . $value); } else { $result[] = $value; } } } return $result; } }
在我的刀片中,我只是试着这样称呼它:
{{ $watchFolder }}
但它没有用,我收到以下错误:
htmlentities() expects parameter 1 to be string,array given
编辑:
我得到的数组显示目录中包含子文件夹的所有文件夹/文件.
(用过dd())
目前它看起来像这样:
array:6 [▼ 123123 => array:2 [▼ "subfolder1" => array:1 [▼ 0 => "video.mpg" ] "subfolder2" => array:1 [▶] ] 789 => array:2 [▶] "folder1" => array:2 [▶] "folder2" => array:2 [▶] "folder3" => array:2 [▶] "folder1" => [] ]
从您的问题看来,似乎您想要输出数组用于调试目的,正如我所评论的那样,您只需使用<?PHP和?>您的刀片模板中的标记.
原文链接:https://www.f2er.com/laravel/130290.html<?PHP dd($array); ?>
使用Reflection有2种快速使用方法;在你的控制器内:
class WatchController extends Controller { public function index(\Illuminate\Filesystem\Filesystem $filesystem) { $files = $filesystem->allFiles($watchFolderPath); // Your code. return view('name',['files' => $files]); } }
class WatchController extends Controller { public function index() { $files = app('files')->allFiles($watchFolderPath); // Your code. return view('name',['files' => $files]); } }
你应该使用Filesystem,没有必要重新发明轮子 – 你应该read the manual.