计算行 laravel 5.2 和 angularjs

count rows laravel 5.2 and angularjs

我正在尝试通过一些 ID 获取行数,我得到的是:

型号:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Domains extends Model
{
  protected $connection ='dns';
  protected $table = 'domains';
  protected $fillable = [
      'id', 'name', 'master', 'last_check', 'type'
  ];
  public $timestamps = false;

  public function records(){
    return $this->hasMany('App\Models\Records');
  }
}

控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use App\Models\Domains;

class DomainsController extends Controller
{
  public function index() {
    $domains = Domains::all();
    $records = records::where('domain_id', '=', $domain_id)->get();
    return $domains;
  }
  public function show($id) {
    $domain_id = $id;
    $records = Records::where('domain_id', '=', $domain_id)->get();
    //return $records;
    return View::make('domainView.show')->with('records', $records);
  }
}

但是当我在前端访问域时,我无法获取记录数;

前端控制器:

(function() {
  'use strict';

  angular
      .module('webServices')
      .controller('DomainController', DomainController);

      function DomainController($http) {
        var vm = this;

        vm.domains;
        vm.error;
        $http.get('api/domains').success(function(domains) {
          console.log(domains);
          vm.domains = domains;
        }).error(function(error) {
          vm.error = error;
        });
      }
})();

如何从 table 记录中获取行数,与域在同一个数据库中。

解决方法很简单。使用 length,不是 AngularJS,而是原生的 JavaScript:

console.log(vm.domains.length); // prints number of domains to console

或者

alert(vm.domains.length); // gives an alert with number of domains to console

你的 AngularJS 看起来像:

(function() {
    'use strict';

  angular
      .module('webServices')
      .controller('DomainController', DomainController);

      function DomainController($http) {
          var vm = this;
          vm.domains = [];
          vm.error = null;

          $http.get('api/domains').success(function(domains) {
              vm.domains = domains;
              console.log(vm.domains.length); // Prints length of domains in your console;
          }).error(function(error) {
              vm.error = error;
          });
      }
})();

您可以在 laravel 代码中使用以下内容。

$count = Domains::count() 

了解域中的总行数 table。

你也可以用

  $records = records::where('domain_id', '=', $domain_id)->get();
  count($records);

了解获取的记录总数。

为了计算行数,我使用:

Laravel 控制器:

  public function index() {
    $domains = Domain::all();
    $domains = Domain::with('records')->get();
    return $domains;
  }

Angular 控制器:

  vm.getDomains = function () {
   $http.get('api/domains').success(function(domains) {
     vm.domains = domains;
   }).error(function(error) {
     vm.error = error;
   });
  }

Angular 视图:

<tbody ng-repeat="domain in domain.domains">
      <tr>
          <td>{{domain.name}}</td>
          <td>{{domain.type}}</td>
          <td>{{domain.records.length}}</td>
      </tr>
    </tbody>

感谢@somu 和@Schellingerht 的回答,帮助我得到答案。