首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将集合赋值给javascript变量时出错

将集合赋值给javascript变量时出错
EN

Stack Overflow用户
提问于 2018-01-28 01:50:20
回答 4查看 441关注 0票数 1

在来自仓库的控制器中使用相同的抽象方法all()包括:

代码语言:javascript
复制
    $clients = $this->clients->all();
    $substrates = $this->substrates->all();
    return view('jobs.create', compact('substrates', 'clients')) ;

在create.blade.php中

代码语言:javascript
复制
    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)必须返回字符串值

EN

回答 4

Stack Overflow用户

发布于 2018-01-28 01:54:43

使用toJson()方法:

代码语言:javascript
复制
let substrates = `{!! $substrates->toJson() !!}`
let clients = `{!! $clients->toJson() !!}`
票数 0
EN

Stack Overflow用户

发布于 2018-01-28 02:02:35

我认为您可以使用toJson()方法或@json Blade指令:

代码语言:javascript
复制
let substrates = @json($substrates);
let clients = @json($clients);

您可以在渲染Json https://laravel.com/docs/5.5/blade#displaying-data下找到一些文档。

票数 0
EN

Stack Overflow用户

发布于 2018-01-28 03:05:28

您可以使用json_encode来执行以下操作:

代码语言:javascript
复制
<script>    
  let substrates = {!! json_encode($substrates->toArray()) !!};
  let clients = {!! json_encode($clients->toArray()) !!};
</script>

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48478716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档