Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
blade php中的Laravel打印数组_Php_Arrays_Laravel_Blade - Fatal编程技术网

blade php中的Laravel打印数组

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);

我想在my.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 }}
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的文本标记
{!!
!!}
也可以在刀片模板内自由使用(尽管不赞成)。