blade php中的Laravel打印数组
我想在my.blade.php中显示一个数组,但它不能正常工作,因此我的控制器如下所示:blade php中的Laravel打印数组,php,arrays,laravel,blade,Php,Arrays,Laravel,Blade,我想在my.blade.php中显示一个数组,但它不能正常工作,因此我的控制器如下所示: class WatchController extends Controller { public function index() { $watchFolderPath = 'C:\\xampp\\htdocs\\Pro\\rec\\'; $watchFolder = $this->dirToArray($watchFolderPath);
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 }}
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" => []
]
在我的刀片里,我试着这样称呼它:
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 }}
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" => []
]
但它不起作用,我得到以下错误:
htmlentities()要求参数1为字符串,数组给定
编辑:
我得到的数组显示目录中包含子文件夹的所有文件夹/文件。
(使用dd()
现在看起来是这样的:
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 }}
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 dd($array); ?>
或者从以下位置调用:
另外,您应使用,无需重新发明控制盘–您应。仅在blade中输出阵列以进行调试:
@php
var_dump($arr);
@endphp
然后使用前面提到的foreach循环。对于那些看起来像我的人
echo implode("\n",$array);
如果它的多维数组
echo implode("\n",array_collapse($array));
您需要在项目上循环,如
@foreach
只要阅读刀片手册{{print\r($array,true)}
或{!!dd($array)
将帮助你:)我想稍后在我的刀片中漂亮地展示它。那么你为什么不接受Alexey的回答呢?你甚至在阅读评论吗?你将如何打印数组的所有值?如果你问如何打印所有值以进行调试,你可以尝试使用dd($watchFolder)
在控制器中或视图中的{{dd($watchFolder);}}
。如果你问如何在profection中打印数组值,请看我答案中的代码。不起作用,我得到以下错误:helpers.php第469行中的ErrorException:htmlentities()希望参数1是字符串,数组给定这是因为你正在构建复杂的数组,请在问题中发布你的数组结构示例,因此,我们可以帮助您。在blade{{
和}
中,它们是
的替代品,也可以通过e()
进行解析,以逃避不好的事情。因此,它需要用于HTML输出或原始php的文本标记{!!
和!!}
或
也可以在刀片模板内自由使用(尽管不赞成)。