Получите результаты от Laravel, поместив результаты запроса в другой запрос в foreach - PullRequest
0 голосов
/ 16 мая 2018

Я хочу получить результаты от Laravel, поместив результаты этого запроса в другой запрос в foreach.

$first = DB::connection('store')
->table('entire_store')
->select('name', 'code', 'category', 'direct')
->where('open', 'Y')
->get();

Первый запрос берет информацию о точках и обрабатывает их в массив.

Сопоставьте информацию о филиалах с рабочим местом в таблице сотрудников.

Я хочу сохранить информацию о рабочих местах сотрудников вместе.

$temp = array();    
$i =0;    
foreach($first as $key => $item){

    $temp[$i]['name'] = $item->name;
    $temp[$i]['code'] = $item->code;

    $temp[$i]['category'] = $item->category;
    $temp[$i]['direct'] = $item→direct;

    $second = DB::connection('store')
     ->table('entire_employer')
     ->SELECT('mgr_no','mgr_id', 'status')
     ->where('store',$item->code)->get();
    //I tried.
    foreach($second as $key2 => $item2){
        $temp[$i]['mgr_id'] = $item2->mgr_id;
    }
    $i++;

}

Я хочу сохранитьзначения из этого запроса в temp_array.

Я получаю сообщение об ошибке, если пытаюсь сохранить значение второго запроса и вывести значение temp_array ().

Есть ли что-то еще, что мне нужносделать, чтобы проверить temp_array ()?

1 Ответ

0 голосов
/ 16 мая 2018

То, что вы пытаетесь сделать, это LEFT JOIN таблицы entire_employer на таблицу entire_store.Это будет делать именно то, что вы пытаетесь сделать в своем коде: сопоставлять записи одной таблицы с записями в другой; LEFT соединение будет привязывать эти записи в первичной таблице (entire_store, в данном случае).

Вы можете сделать это в одном запросе, например:

$data = DB::connection('store')
  ->table('entire_store')
  ->select(
      'entire_store.name', 
      'entire_store.code', 
      'entire_store.category', 
      'entire_store.direct', 
      'entire_employer.mgr_no', 
      'entire_employer.mgr_id', 
      'entire_employer.status'
  )
  ->leftJoin('entire_employer', 'entire_employer.store', '=', 'entire_store.id')
  ->where('entire_employer.open', 'Y')
  ->get();

Подробнее об объединениях можно прочитать здесь: https://www.sitepoint.com/understanding-sql-joins-mysql-database/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...