我想在我的 .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() 期望参数 1 为字符串,给定数组
编辑:我得到的数组显示目录中带有子文件夹的所有文件夹/文件。(使用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
var_dump($arr);
@endphp
然后使用前面提到的 foreach 循环。
从您的问题来看,似乎要输出数组以进行调试,正如我所评论的那样,您可以简单地在刀片模板中使用<?php
和?>
标记。
<?php dd($array); ?>
但是,刀片具有原始输出标记对,该标记对{!!
和!!}
。
准备好显示目录结构的输出后,应将其分配给视图。
有 2 种快速方法可以将其与 Reflection; 在控制器内部使用:
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]);
}
}
此外,您应该使用文件系统,无需重新发明轮子 - 您应该阅读手册。
你应该使用@foreach
:
@foreach ($watchFolder as $key => $value)
Key: {{ $key }}
Value: {{ $value }}
@endforeach
或
@foreach ($watchFolder as $w)
{{ $w->name }}
@endforeach
对于那些可能来找...喜欢我
echo implode("'n",$array);
否则,如果其多维数组
echo implode("'n",array_collapse($array));
您可以简单地使用 :
@dump($arr)
若要在刀片文件中输出$watchFolder
数组,可以使用以下方法:
<pre><code>{{ json_encode($watchFolder, JSON_PRETTY_PRINT) }}</code></pre>
这将显示数组的格式良好的 JSON 版本,并使其更具可读性:
{
"123123": {
"subfolder1": [
"video.mpg"
],
"subfolder2": []
},
"789": [],
"folder1": [],
"folder2": [],
"folder3": []
}
如果只需要在一行中显示JSON_PRETTY_PRINT
,也可以将其删除:
{"123123":{"subfolder1":["video.mpg"],"subfolder2":[]},"789":[],"folder1":[],"folder2":[],"folder3":[]}