gpt4 book ai didi

mysql - 使用 Laravel 比较不同表中的两个字段

转载 作者:行者123 更新时间:2023-11-29 09:46:40 24 4
gpt4 key购买 nike

我有两个表:员工和客户,我给出了下面的架构。

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();

然后我将这些值返回到我的 Blade 文件,如下所示

 return view ('pages.dashboard')
->with('query1',$query1)

然后我在 Blade 文件中使用 php 缩进来返回用户数据

 @foreach ($query1 as $Userfound)
{{ $Userfound->username}}</p>

@endforeach

实际查询需要简单的英语

所以我需要选择一个客户,其中 CustomerID == id

注意:id 来自客户表,CustomerID 存储在员工表中。

最佳答案

您可以使用 Laravel 创建模型,例如:

员工.php

public function customers()
{
return $this->hasMany('App\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();

关于mysql - 使用 Laravel 比较不同表中的两个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55536334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com