【问题标题】:Parse Laravel JSON object in Javascript throwing error在 Javascript 中解析 Laravel JSON 对象抛出错误
【发布时间】:2018-02-18 02:52:29
【问题描述】:

Laravel 代码:

$teachers = Teachers::where('possessed_by_community', $communityId)->pluck('teacher_name');

return view('pages.show_add_teachers', [
    'teachers'  => $teachers
]);

然后在客户端我尝试了:

var teachers = "<?php echo json_encode($teachers) ?>" ;
teachers = JSON.parse(teachers);
console.log(teachers);

在 webconsole 中我得到:

SyntaxError: missing ; before statement

在火狐调试器中:

【问题讨论】:

  • 用单引号代替var teachers = '&lt;?= json_encode($teachers) ?&gt;';
  • @LawrenceCherone,解决了。谢谢。

标签: javascript php json laravel


【解决方案1】:

改用单引号var teachers = '&lt;?= json_encode($teachers) ?&gt;';

或者根本不使用引号,省略JSON.parse(teachers);

var teachers = <?= json_encode($teachers) ?>;
console.log(teachers);

虽然您必须始终检查$teachers 是否有效,但始终是字符串、空值或数组。

否则它将变为 var teachers = ; 并中断。

【讨论】:

  • var teachers = '&lt;?php echo json_encode($teachers) ?&gt;' ; teachers = JSON.parse(teachers); 工作
【解决方案2】:
var jArray = @json($teachers);

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
猜你喜欢
  • 2016-01-29
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 2013-03-06
相关资源
最近更新 更多