Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4-将json解码到视图中_Php_Arrays_Json_Foreach_Laravel 4 - Fatal编程技术网

Php Laravel 4-将json解码到视图中

Php Laravel 4-将json解码到视图中,php,arrays,json,foreach,laravel-4,Php,Arrays,Json,Foreach,Laravel 4,我最近一直在尝试使用Laravel4,到目前为止,使用它是一种乐趣。然而,我遇到了一个问题,不是拉威尔4号,而是我自己的错误 我有一个包含3行4列的数据库。例如,假设列为: 内容id, 内容类型, 内容和数据, 时间戳 'content\u data'列包含一个由大约4个键值对组成的JSON编码数组 当我从数据库中检索这些行(使用Eloquent)并将数据传递到视图中时,如何将JSON解析到刀片模板中 在搜索并参考了Laravel文档之后,我的想法是您不能,所以我尝试将JSON解码回控制器中的数

我最近一直在尝试使用Laravel4,到目前为止,使用它是一种乐趣。然而,我遇到了一个问题,不是拉威尔4号,而是我自己的错误

我有一个包含3行4列的数据库。例如,假设列为:

内容id, 内容类型, 内容和数据, 时间戳

'content\u data'列包含一个由大约4个键值对组成的JSON编码数组

当我从数据库中检索这些行(使用Eloquent)并将数据传递到视图中时,如何将JSON解析到刀片模板中

在搜索并参考了Laravel文档之后,我的想法是您不能,所以我尝试将JSON解码回控制器中的数组,然后将其传递到我的视图中

到目前为止,我在课堂上尝试了以下方法:

<?php
class PageController extends \BaseController {

public function index()
{

    $data = Content::
        ->where('content_type', 1)
        ->get();

    foreach($data as $content)
    {
        $items[] = json_decode($content->content_data);
    }

    return View::make('pages.page2')
        ->with('data', $data)
        ->with('items', $items);
}
}
根据需要使用转换数据

/**
 * Eloquent accessor to transform our content_data column
 * from JSON to an array.
 * 
 * @param  string  $data  Original JSON data
 * @return array
 */
public function getContentDataAttribute($data)
{
    return json_decode($data);
}
然后,您可以像往常一样通过
$content->content\u data
检索列,但它将转换为数组


在将数据保存到该列时,也可以使用mutator将传递的数组转换为JSON编码的字符串,从而实现相反的效果。

尝试
$content->content\u data=JSON\u decode($content->content\u data)
。您的意思是在我的控制器中执行foreach循环,而不是将JSON\u解码的值分配到$items数组中,我应该把它分配到$content->content\u data?我会试试看,不知道问题出在哪里。谢谢你的尝试,但它不起作用。它只检索最后一行的$data_content列,因此我将其放入数组中。它工作得很好,尽管我花了一段时间才了解访问器的命名约定以及如何从Blade中访问我的数组,但我还是设法解决了这个问题。顺便说一句,您的代码中有一个小的输入错误,返回的应该是
json\u encode
。非常感谢所有的贡献者。
/**
 * Eloquent accessor to transform our content_data column
 * from JSON to an array.
 * 
 * @param  string  $data  Original JSON data
 * @return array
 */
public function getContentDataAttribute($data)
{
    return json_decode($data);
}