Сравните два поля в другой таблице, используя Laravel - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть две таблицы сотрудников и клиентов, я дал схему ниже.

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 в таблице Customer.

Я пробовал что-то подобное ниже, однако я думаю, что мне может понадобиться запрос на соединение, но я не уверен.

$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

Фактический запрос необходим на простом английском

, поэтому мне нужновыберите клиента, где CustomerID == id

ПРИМЕЧАНИЕ: идентификатор взят из таблицы клиентов, идентификатор клиента хранится в таблице сотрудников.

1 Ответ

1 голос
/ 05 апреля 2019

Вы можете создавать модели, используя 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...