在来自仓库的控制器中使用相同的抽象方法all()包括:
$clients = $this->clients->all();
$substrates = $this->substrates->all();
return view('jobs.create', compact('substrates', 'clients')) ;在create.blade.php中
let substrates = {!! $substrates !!}
let clients = {!! $clients !!}我可以在html中的嵌入式php中访问这个集合,并且工作正常,但是当我将它赋给一个javascript变量时,虽然$clients没有问题,但是我得到了以下结果:
Illuminate\Database\Eloquent\Collection::__toString() (视图: /home/vagrant/code/resources/views/jobs/create.blade.php) )方法ErrorException (E_ERROR)必须返回字符串值
发布于 2018-01-28 01:54:43
使用toJson()方法:
let substrates = `{!! $substrates->toJson() !!}`
let clients = `{!! $clients->toJson() !!}`发布于 2018-01-28 02:02:35
我认为您可以使用toJson()方法或@json Blade指令:
let substrates = @json($substrates);
let clients = @json($clients);您可以在渲染Json https://laravel.com/docs/5.5/blade#displaying-data下找到一些文档。
发布于 2018-01-28 03:05:28
您可以使用json_encode来执行以下操作:
<script>
let substrates = {!! json_encode($substrates->toArray()) !!};
let clients = {!! json_encode($clients->toArray()) !!};
</script>希望这能有所帮助。
https://stackoverflow.com/questions/48478716
复制相似问题