Angular JS 与 Laravel - 如何绑定 Eloquent ORM 数组以查看

Posted

技术标签:

【中文标题】Angular JS 与 Laravel - 如何绑定 Eloquent ORM 数组以查看【英文标题】:Angular JS with Laravel -- How to Bind Eloquent ORM array To View 【发布时间】:2015-07-02 22:07:47 【问题描述】:

我尝试将 Laravel Eloquent ORM 数组绑定到 Angular JS 视图。

这是我的代码,

控制器(Laravel)

public function index()

    $data = User::all();

    Response::json(array('data'=>$data));

查看(Laravel)

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Laravel php Framework</title>
<script type="text/javascript" href="URL::asset('js/angular.js')"></script>
<script type="text/javascript"  href="URL::asset('js/controller.js')"></script>
</head>
<body>
<div class="welcome">
    <ul ng-controller="clientList">
        <li ng-repeat="clients as clients">clients.name</li>
    </ul>

</div>

控制器(Anular JS)

var anguApp = angular.module('anguApp', []);

anguApp.controller('clientList',function($scope,$http)


   $scope.clients=[];

   $http.get('/').success(function (data, status) 
   $scope.clients = data;
   console.log(data);
);
);

现在在浏览器中出现空白屏幕.... 如何解决?

【问题讨论】:

Response::json(array('data'=&gt;$data));改成这个return Response::json(array('data'=&gt;$data));,可能有用。 如何用角度显示这个 【参考方案1】:

我相当肯定你不应该将User::all(); 的结果包装到一个数组中。 也就是说,直接将它的结果传递就足够了:

Response::json($data-&gt;toArray());

此外,您需要返回 Laravel 控制器所做的任何事情:

public function index()

    $users = User::all();

    return Response::json($users->toArray());

更新:

或者,按照Returning an Eloquent model as JSON in Laravel 4,您也可以返回模型本身:

public function index()

    $users = User::all();

    return $users;

更新 2:

很确定你的 AngularJS 语法是错误的,根据docs 它是:

&lt;div ng-repeat="(key, value) in myObj"&gt; ... &lt;/div&gt;

所以你的代码应该是:

<ul ng-controller="clientList">
    <li ng-repeat="client in clients">client.name</li>
</ul>

【讨论】:

Illuminate\Database\Eloquent\Collection 类的对象无法转换为 int 现在获取 json 数组。但是如何用角度显示这个

以上是关于Angular JS 与 Laravel - 如何绑定 Eloquent ORM 数组以查看的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Laravel 5.4 与 Angular 4 集成

如何通过单击下一步按钮使用 Angular js 将具有不同数据的同一页面转到 laravel

使用带有 JWT Auth/Laravel 的 Angular JS 获取新的刷新令牌后,如何恢复/重新发送请求?

在自定义验证中使用 Angular JS + Laravel 检查当前密码

Laravel 4 和 Angular JS 和 Twitter Bootstrap 3 分页

将数据从我的 ionic/angular.js 应用程序发布到 laravel 5.2 数据库会出错