PHP Laravel view json



我在显示从控制器到视图的JSON时遇到了一些问题。如果我只返回JSON响应。

{"result":true,"title":"Cable"} 

正常。

但是,当我尝试实施刀片时,它无法正常工作。我在控制器中这样做。

$data1 = $getProduct->index();
        $data = array(
            'title'=> $data1['title'],
            'Description'=>'This is New Application',
            );

和此视图

{{ $title }}

和错误,例如

Cannot use object of type IlluminateHttpJsonResponse as array

看起来您正在尝试使用单个函数返回多个端点的数据(一个JSON和一个视图(。这很好,除非共享函数应返回数组而不是jsonresponse。JSONRESPONSE类不是JSON对象,它是一个响应对象,除所有响应数据(如标头,cookie等(外,还具有数据。

更新index()以返回数组。从您的评论中,听起来像是在控制器中包含,但在其他控制器中使用。这应该生活在自己的班级中,然后从任何需要它的控制器中调用。

public function index()
{
    // retrieve/generate data
    return [ 'result' => true, 'title' => $title, 'orders' => $orders ];
}

然后在您的JSON路线中:

public function jsonEndpoint()
{
    return response()->json($getProduct()->index());
}

然后在刀片路线中进行:

public function bladeEndpoint()
{
    $data1 = $getProduct->index();
     $data = array(
         'title'=> $data1['title'],
         'Description'=>'This is New Application',
     );
     return view('view_name', $data);
}

IlluminateHttpJsonResponse表明您的返回数据不是数组,而是对象。

基于此,您应该做这样的事情:

$data1 = $getProduct->index();
// As $data1 is IlluminateHttpJsonResponse
// you need to get the data in object format (not array)
$data = array(
  'title'=> $data->title,
  'Description'=>'This is New Application',
);

应该做的。

注意:如果$data1为null,则您的JSON格式不好。

请参阅照明 http jsonresponse官方文档

尝试使用dd(your_object(或dump(your_object(,以查看对象内部的内容,然后按照响应

发送它

您可以简单地使用json_decode()将JSON对象转换为PHP数组

$data = json_decode($data1);
echo $data->title; // Cable

相关内容

  • 没有找到相关文章

最新更新