列出所有与他们注册的驱动程序的计数的用户
我有拖款User
和Driver
的user
可以注册任意数量的驱动程序drivers
列出所有与他们注册的驱动程序的计数的用户
在驱动程序表,我有agent_id
,我想列出所有users
与他们在我的UserController的注册
司机算我想通过代理注册的驱动程序的数量
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));
}
Drver型号
<?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',];
}
和用户模型
<?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'];
}
我婉DISPLY所有users
与驱动程序的列表视图中每个用户的计数
<ul>
@foreach (users as user)
<li>User: {{user->name}}
Total Drivers: {{$user->drivers_count}}
</li>
@endforeach
</ul>
谢谢
假设agent_id
是将用户与驱动程序相关联的关键......您非常接近我认为您所要求的内容。
然而,在UserController中的索引方法的第一行,我将更新
$users = User::all();
到
$users = User::withCount('drivers')->all();
,并添加驱动程序关系到用户模式。
因此,与加关系的用户模型现在将
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');
}
}
您可以从您的控制器中删除下面的一行但是这取决于你...
$drivers_registered = Driver::where('agent_id' , $agent_id)->count();
谢谢你的时间,真的很感激它 –
示例AgentController:
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>
谢谢你的时间,在这里我没有通过任何'agent_id',我想在列表视图中显示所有'代理'与每个代理注册的驱动程序的计数 –
份额'驱动程序和用户模型? – C2486
非常感谢你的时间,我已更新我的帖子 –
我建议使用:https://laravel.com/docs/5.4/eloquent-relationships#one-to-many – C2486