Laravel数组为json格式

MrS*_*S16 3 html javascript php laravel

所以我试图将一个Laravel数组转换成json我可以通过javascript操作它.我不确定这是如何正确实现的.到目前为止,这是代码

@foreach ($posts as $post)
<div class="row">
   <div class="col-md-8">
     <div class="row">
        <div class="col-md-8 tag">
            <h4><strong><a href="{{{ $post>postName }}}">#{{String::title($posts->postName) }}</a></strong></h4>
        </div>
     </div>
    <!-- ./ post title -->
   </div>    
</div>
<hr />
@endforeach


<script type="text/javascript">
   var data = "{{ ($posts) }}"; // ??
   console.log(data);
</script>
Run Code Online (Sandbox Code Playgroud)

小智 7

如果您正在寻找将普通数组转换为 json 的“高级”方法,您可以使用 laravel 集合。

collect(['a' => 1, 'b' => 2, 'c' => 3])->toJson();
Run Code Online (Sandbox Code Playgroud)


Jim*_*ung 6

您可以从控制器返回一个json_encoded数组,如下所示:

public function index()
{
    $posts = Post::all();
    $json = json_encode($posts);
    return View::make('posts.index', compact('posts', 'json'));
}
Run Code Online (Sandbox Code Playgroud)

然后您可以在视图中使用它,就像您喜欢的那样:

<script type="text/javascript">
    var data = {{ $json }};
    console.log(data);
</script>
Run Code Online (Sandbox Code Playgroud)

此外,如果您的帖子模型上有敏感字段,则应在模型类中排除这些字段,以防止它们显示在您的javascript检查器中:

class Post extends \Eloquent {
    ...

    protected $hidden = array(
    'id',
    'created_at',
    'updated_at'
    );

    ...
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*lln 5

使用Eloquents内置函数toJson将行作为json.

<script type="text/javascript">
   var data = "{{ $posts->toJson() }}";
   console.log(data);
</script>
Run Code Online (Sandbox Code Playgroud)

如果您不想包含某些字段,请将该字段添加到hidden模型中的属性,如Jimmy所述.