首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出所有用户以及他们注册的驱动程序的数量。

列出所有用户以及他们注册的驱动程序的数量。
EN

Stack Overflow用户
提问于 2017-04-21 10:16:50
回答 2查看 214关注 0票数 0

我有两种型号的UserDriveruser可以注册任意数量的司机drivers

在拥有agent_id的驱动程序表中,我希望列出所有的users,并列出它们注册的驱动程序的数量。

在我的用户控制器中,我希望获得代理注册的驱动程序的计数。

代码语言:javascript
复制
public function index(Request $request) 
{
    $users = User::all();

    $registration_centers = RegistrationCenter::all();

    $drivers_registered = Driver::where('agent_id' , $agent_id)->count();  //something like this but i don't have agent_id to query with

    return view('agents', compact('users', 'registration_centers', drivers_registered));
}

干燥器模型

代码语言:javascript
复制
<?php

namespace App;

use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Driver extends Model
{
   use SoftDeletes;

   protected $fillable = ['agent_id','registration_center','event_name','registration_id','profile_photo','first_name','last_name',];

}

和用户模型

代码语言:javascript
复制
<?php

namespace App;

use App\Driver;
use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use SoftDeletes, HasApiTokens, Notifiable;

    protected $fillable = ['name', 'email', 'phone_number','password','address_city_village','address_state','image','registration_center','status'];

    protected $hidden = ['password', 'remember_token','created_at','updated_at','deleted_at'];

    protected $dates = ['deleted_at'];
}

我打算在一个列表视图中显示所有的users和每个用户的驱动程序计数。

代码语言:javascript
复制
<ul>
    @foreach (users as user)
    <li>User: {{user->name}}  
         Total Drivers: {{$user->drivers_count}}
        </li>
    @endforeach
</ul>

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-21 23:22:28

假设agent_id是将用户与驱动程序关联起来的密钥.你很接近我认为你想要的。

但是,在UserController索引方法的第一行中,我将更新

代码语言:javascript
复制
$users = User::all();

代码语言:javascript
复制
$users = User::withCount('drivers')->all();

并将驱动程序关系添加到用户模型中。

因此,添加了关系的用户模型现在将是

代码语言:javascript
复制
class User extends Authenticatable
{
    use SoftDeletes, HasApiTokens, Notifiable;

    protected $fillable = ['name', 'email', 'phone_number','password','address_city_village','address_state','image','registration_center','status'];

    protected $hidden = ['password', 'remember_token','created_at','updated_at','deleted_at'];

    protected $dates = ['deleted_at'];

    public function drivers(){
        $this->hasMany('App\Driver', 'agent_id');
    }

}

你也许可以把下面的线从你的控制器上移除,但那要看你自己了.

代码语言:javascript
复制
$drivers_registered = Driver::where('agent_id' , $agent_id)->count();
票数 1
EN

Stack Overflow用户

发布于 2017-04-21 10:34:29

示例AgentController:

代码语言:javascript
复制
 public function index(Request $request, $agenId){
        $users = User::all();
        $registration_centers = RegistrationCenter::all();
        $drivers_registered = Driver::where('agent_id' , $agenId)->count(); 
        return view('agents', compact('users', 'registration_centers', 
        'drivers_registered'));
    }

    this blade 
    <p> {{ $drivers_registered }} </p>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43540064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档