我很难回到单个阵列,然后我可以将其作为JSON返回。
模特:
class CoverageLimit extends Eloquent {
protected $table = 'webapp_limit_tbl';
public static function index($code,$plan_type,$income_tier){
$data = CoverageLimit::where('limitcode', $code)
->where('plantypecode', $plan_type)
->where('incometiercode', $income_tier)
->get(array('limitcode','limit_desc'));
return print_r($data->toArray());
}
}
控制器:
$limits = array();
foreach($pieces as $coverage_limit) {
$limits = array_merge($limits, coveragelimit::index($coverage_limit,$plan_type,$income_tier));
//this now works thanks to suggestion below
}
return $limits;
返回:
Array
(
[0] => Array
(
[limitcode] => L0001
[limit_desc] => $1M per claim / $2M annual aggregate
)
)
Array
(
[0] => Array
(
[limitcode] => L0002
[limit_desc] => $2M per claim/ $2M annual aggregate
)
)
[true,true]
目标是通过json_encode($ limits)输出以下JSON数据:
[{"limitcode":"L0001","limit_desc":"$1M per claim / $2M annual aggregate"},{"limitcode":"L0002","limit_desc":"$2M per claim / $2M annual aggregate"}
]
我认为我需要的是一个像下面这样的单一阵列才能实现这一目标,但我似乎无法实现这一目标。
Array
(
[0] => Array
(
[limitcode] => L0001
[limit_desc] => $1M per claim / $2M annual aggregate
),
[1] => Array
(
[limitcode] => L0002
[limit_desc] => $2M per claim/ $2M annual aggregate
)
)
对于如何将此返回合并为单个数组以获得有效的json输出,我将不胜感激。或者,如果有一种方法可以将它作为一个数组从foreach返回。感谢。
答案 0 :(得分:1)
首先,请勿使用return print_r($data->toArray());
这是不正确的。只需return $data->toArray()
,它应该可以正常工作。
问题是print_r返回一个布尔值并输出到stdout数据结构的文本表示。这就是为什么你在输出示例的末尾看到恼人的[true,true]。您尝试json_encode的数组实际上只是一个数组,其中两个值为true,从print_r返回。