внутренняя ошибка соединения в Laravel Eloquent - PullRequest
0 голосов
/ 29 апреля 2018

Я хотел бы получить сопоставленные данные в две таблицы. соответствует только одному значению столбца в отображаемых данных 'pn'.

Я пишу ниже код.

$majis = St::join('sts.pn', '=', 'pn_list.pn')->get();
return view('contacts.index')->with('majis',$majis);

тогда я получил эту ошибку

 Illuminate \ Database \ QueryException (42S02)
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sts.pn' doesn't exist (SQL: select * from `sts` inner join `sts`.`pn` on `=` = `pn_list`.`pn`)

я впервые использую внутреннее соединение. в чем проблема?

Как я сам проверил, я могу отобразить каждую таблицу как отдельную.

Текущая ошибка здесь

SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '=' (SQL: select * from `sts` inner join `pn_list` on `sts`.`pn` = `pn_list`.`pn`)

Об отображении. Как написать буксир foreach, когда я те @foreach ($ records как $ record) и @foreach ($ majis как $ maji)?

текущий файл блейда

  @foreach ($records as $record)
        <tr>   
            <td>{{ $record->id }}</td>
            <td>{{ $record->date }}</td>
            <td>{{ $maji->pname }} {{ $maji->pdetail }}</td> 
            <td>{{ $record->memo }}</td>
       </tr>     
  @endforeach

Контроллер

$majis = St::join('pn_list', 'sts.pn', '=', 'pn_list.pn')->get();
 return view('contacts.index')->with('records',$records)->with('pn',$pn)->with('ename',$ename)->with('pns',$pns)->with('majis',$majis);

Моя цель

Основная таблица (st) содержит большую часть данных. Я хотел бы добавить некоторые дополнительные детали. подробности есть Sub table (pns).

Основными данными таблицы являются «история записи». Каждая запись имеет $ pn, что означает номер продукта.

В подстоле есть столбец $ Pn - номер продукта, $ pname - это название продукта, а $ pdetail - подробности о продукте.

Например, основная запись $ pn равна 425 Подтаблица откликнется и отобразит название продукта и подробности № 425.

1 Ответ

0 голосов
/ 30 апреля 2018

Первый аргумент join() должен быть таблицей:

$majis = St::join('pn_list', 'sts.pn', '=', 'pn_list.pn')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...