在存储库的控制器中使用相同的抽象方法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没有问题,但我得到以下结论:
ErrorException(E_ERROR) 方法Illuminate \ Database \ Eloquent \ Collection :: __ toString()必须返回一个字符串值(查看:/home/vagrant/code/resources/views/jobs/create.blade.php)
答案 0 :(得分:0)
使用toJson()
方法:
let substrates = `{!! $substrates->toJson() !!}`
let clients = `{!! $clients->toJson() !!}`
答案 1 :(得分:0)
我认为你可以同时使用toJson()方法或@json Blade指令:
let substrates = @json($substrates);
let clients = @json($clients);
你可以在渲染Json下找到一些文档 https://laravel.com/docs/5.5/blade#displaying-data
答案 2 :(得分:0)
您可以使用json_encode
:
<script>
let substrates = {!! json_encode($substrates->toArray()) !!};
let clients = {!! json_encode($clients->toArray()) !!};
</script>
希望这有帮助。
答案 3 :(得分:0)
问题在于我在基板模型中有二元场并且作为集合的一部分;得到所有()。