Laravel - запрос двух моделей с особыми условиями - PullRequest
0 голосов
/ 03 июля 2019

У меня две две таблицы:

  1. отдел (отдел)

    id, dept_code и dept_point

  2. обозначение (Обозначение)

    id, dept_code, обозначение_point и create_at

Я хочу выбрать dept_code, обозначение_point, creation_at из обозначения.Запрос должен выполнить цикл по таблице обозначений и использовать эти условия.

Условия

  1. выбрать все dept_code, designation_point и creation_at из обозначения, где dept_code - этоне равный 101 и 102

  2. Если dept_code = 101 или dept_code = 101, в обозначении следует выбрать соответствующие dept_code, designation_point и creation_at из обозначения, используя следующие условия:

Department.dept_code = designation.dept_code

Department.dept_point = designation_designation_point

Это код, который у меня уже есть

Контроллер

        $designations = DB::table('designation as g')
    ->select(
       'g.dept_code', 
       'g.designation_point',
       DB::raw("DATE(created_at) as created_date")
  )
 ->orderByRaw('g.created_at DESC')
            ->get(); 

Просмотр

        @foreach($designations as $key => $designation)
        <tr>
            <td>{{ ++$key }}</td>
            <td>{{ $designation->dept_code }}</td>               
            <td>{{ $designation->designation_point }}</td>
            <td>{{ $designation->created_date }}</td>
        </tr>          
    @endforeach

Как мне заполнить код в контроллере

1 Ответ

0 голосов
/ 03 июля 2019

Я не уверен, что вы имеете в виду под своим вторым состоянием.Я обновлю свой ответ соответственно.

Использование Builder

$designations = DB::table('designations')
  ->select('dept_code', 'designation_point', 'created_at')
  # Condition 1
  ->whereNotIn('dept_code', [101, 102])
  ->orderBy('created_at', 'desc')
  ->get();

Использование Eloquent

$designations = App\Designation::select('dept_code', 'designation_point', 'created_at')
  # Condition 1
  ->whereNotIn('dept_code', [101, 102])
  ->orderBy('created_at', 'desc')
  ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...