我有两个表employee和customers,我给出了下面的模式。
Customers('id' , 'username', 'location');
Employees('id' , 'EmployeeID' , 'CustomerID', 'location');
当前,我可以使用查询来检索客户详细信息,例如以下查询,请注意,这是当用户登录到系统时,因此Auth ::
$customerQuery1 = DB::table('customer')
->where('id', '!=', Auth::id())
->where('item', '=' , Auth::customer()->recommendation)
->get();
每个员工都有很多客户,我希望其他客户看到其他客户项目,因此我在客户表中附加了CustomerID
字段,该字段是外键,并且与id
字段相关。
我已经尝试了以下类似的方法,但是我认为我可能需要加入查询,但是不确定。
$query2 = DB::table('Customer','Employee')
->select('username')
->where(['EmployeeID' => Auth::id(), 'CustomerID' => 'id'])
->get();
$query2 = DB::table('Customer')
->select('username')
->join('Employee', 'Customer.id', '=', 'Employee.CustomerID')
->where(['EmployeeID' => Auth::id(), 'CustomerID' => 'id'])
->get();
然后我将这些值返回到我的刀片文件中,如下所示
return view ('pages.dashboard')
->with('query1',$query1)
然后我在刀片文件中使用php缩进来返回用户数据
@foreach ($query1 as $Userfound)
{{ $Userfound->username}}</p>
@endforeach
需要用普通英语进行实际查询
所以我需要选择一个customer,其中CustomerID == id
注意:ID来自客户表,客户ID存储在员工表中。
答案 0 :(得分:1)
您可以使用Laravel创建模型,例如:
Employee.php
public function customers()
{
return $this->hasMany('App\Customer');
}
Customer.php
public function employee()
{
return $this->belongsTo('App\Employee');
}
您可以这样访问:
$customer = Customer::where('id',Auth::user()->id)->firstOrFail();
或
$employee = Employee::where('id',Auth::user()->id)->firstOrFail();
并查看员工的客户:
$employee->customers()->get();
或者查看$customer
雇主的其他客户:
$customer->employee()->customers()->get();