计算行laravel 5.2和angularjs

时间:2016-01-29 00:07:50

标签: angularjs laravel-5.2

我试图通过一些Id计算行数,我得到的是:

型号:

sort(unique(colnames(df.train))

控制器:

<?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);
  }
}

如何从表记录中获取行数,与域中的db相同。

3 个答案:

答案 0 :(得分:1)

要计算行数,我使用:

Laravel控制器:

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

角度控制器:

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

角度观点:

<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的回答,帮助我找到答案。

答案 1 :(得分:0)

解决方案很简单。使用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;
          });
      }
})();

答案 2 :(得分:0)

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

$count = Domains::count() 

知道域表中的总行数。

U也可以使用

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

知道提取的记录总数。