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