嗨,我创建了一个如下的Laravel小吸气器。
public function getYearListAttribute(){
$presentyear = intval($this->created_at->format('Y'));
$myarray[] = array(
'present' => $presentyear,
'past1' => $presentyear-1,
'past2' => $presentyear-2,
'past3' => $presentyear-3
);
return response()->json($myarray);
}
我从刀片这样称呼它。
{{$mymodel->yearlist}}
但是我收到的响应是标题,而不是数组列表。
HTTP/1.0 200 OK Cache-Control: no-cache, private Content-Type: application/json Date: Sun, 12 Jul 2020 02:05:44 GMT [{"present":2020,"past1":2019,"past2":2018,"past3":2017}]
非常感谢您提出任何建议或指导,谢谢。
答案 0 :(得分:0)
您可以返回以下响应
return response()->json($myarray)->getContent()
它将仅返回数据
答案 1 :(得分:0)
我想不出您想从Model访问器返回完整的HTTP响应的任何情况。通常,模型不会启动请求/响应更改,因为这通常是通过Route> Controller(AJAX或其他方式)完成的。在这种情况下,您可以简单地返回变量:
public function getYearlistAttribute() {
$presentYear = intval($this->created_at->format('Y'));
$myArray[] = [
'present' => $presentYear,
'past1' => $presentYear-1,
'past2' => $presentYear-2,
'past3' => $presentYear-3
];
return $myArray;
}
{{ $myModel->yearlist }}
的响应现在将只是您定义的数组,而不是HTTP响应。
编辑:但是您当然不能简单地做{{ $myModel->yearlist }}
,因为那是一个数组。您需要对其进行循环:
@foreach($myModel->yearlist as $key => $year)
{{ "{$key} - {$year}" }} // `present - 2020`, `past1 - 2019`, etc...
@endforeach