【发布时间】:2021-08-04 11:33:32
【问题描述】:
为什么 laravel 集合可以直接用作 javascript 变量而不是 php 数组或对象?
在testing.blade.php
<?php
use Illuminate\Support\Collection;
$testingArray = [1,2,3];
$testingObject = new stdClass();
$testingObject->testing = "Testing";
$testingObject->hello = "Hello";
$testingObject->bye = "Bye";
$testingCollection = Collection::make($testingArray);
?>
<script>
var myArray = {!! $testingArray !!}; //Not work
var myObject = {!! $testingObject !!}; //Not work
var myArray = {!! json_encode($testingArray) !!}; //Work
var myObject = {!! json_encode($testingObject) !!}; //Work
var myCollection = {!! $testingCollection !!}; //Work
</script>
有参考吗?
【问题讨论】:
-
{!! .. !!}之间发生的是输出。 PHP 无法打印数组和对象,因为它没有任何关于如何将它们转换为字符串的说明。 Laravel Collection 对象可能已经实现了__toString以允许转换。 -
别忘了
@json指令!
标签: javascript php laravel