【问题标题】:how to pass JSON data to view in laravel如何传递 JSON 数据以在 laravel 中查看
【发布时间】:2017-01-11 11:51:39
【问题描述】:

我想将此 JSON 数据传递给某个视图,但不知道它是如何工作的。

我已经使用过,也制作过视图,并将此数据转换为 JSON 并以其他方式传递,但它不起作用

$items = Items::all();
return response()->JSON($items);

例如视图是items.create

【问题讨论】:

  • 打开 chrome 开发工具,转到网络选项卡,发出请求并检查响应。还发布更多代码,即路线。
  • 用于传递给视图:$items = Items::all();return view('items.create', compact('items')); 仅用于获取 json 数据:$items = Items::all();return $items;

标签: json laravel view


【解决方案1】:

如果要创建JSON response,则需要将集合转换为数组:

$items = Items::all()->toArray(); // $items is array now
return response()->json($items);

如果您想将一些 JSON data 传递给视图,请执行以下操作:

$items = Items::all()->toJson();
return view('items.create', compact('items'));

【讨论】:

  • 它在控制台中没有显示任何东西,我正在使用 Angular JS 这里是代码$scope.init = function() { $http({ method : 'GET', url : 'http://localhost:8000/item' }) .success(function(data) { console.log(data); }); }
【解决方案2】:

对于 Laravel 4.2 版, 您可以将数据传递到您的 blade 视图,其中包含将在刀片中使用的数组的变量(例如:$data)。

$flag 是代码的 JS 部分中使用的变量,因此您也可以将其作为数组传递:Response::json(['param1' => $foo1, 'param2' =>$foo2)]);

在您的控制器中返回视图:

 return Response::json(['view' => View::make('yourbladename', $data)->render(), 'flag'=>$flag]);

在你的 JS 中使用数据变量:

function(data){     
 $('#DivToAppendHTML').append(data.view);                    //this appends html blade to the Div having the ID DivToAppendHTML
       if(data.flag == 1){                                  //this uses the second variable passed in controller for any other purpose
                       $('.classname').remove();
        }
}

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 2017-07-30
    • 2016-05-18
    • 2015-11-03
    • 1970-01-01
    • 2015-12-27
    • 2021-04-19
    相关资源
    最近更新 更多