Я пытаюсь получить значения на основе выбранного пользователем, к которому я присоединился, используя first
метод. Но когда я попытался поместить значения в свою форму. В нем говорится:
SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «sent_document_user.document.id» в разделе «on» (SQL: выберите
documents
title
,categories
.sent_document_user
,documents
content
,documents
.id
fromsent_document_user
внутренниеdocuments
присоединения кdocuments
id
=sent_document_user
.document
. внутренниеcategories
объединения вcategories
.id
=documents
.category_id
гдеdocuments
.id
= 241 limit 1) “
- Laravel SwiftMailer: ожидаемый код ответа 250, но получил код «530», с сообщением «530-5.5.1 Требуется аутентификация
- Использование метода модели Laravel в запросе Eloquent
- Ошибка TokenMismatch для запросов Ajax в Laravel
- Добавить новый транспортный драйвер в Laravel's Mailer
- Laravel 5.2: интегрируйте пакет доверенности, создайте роль и разрешения и получите доступ к нему.
Я присоединился к нему правильно, я не знаю, почему я не могу получить значения, которые я выбрал. Это мой код в SQL, который работает хорошо.
SELECT D.title, C.category_type, D.content, D.id FROM sent_document_user SD INNER JOIN documents D ON SD.document_id = D.id INNER JOIN categories C ON D.category_id = C.id;
контроллер
public function readSentDocuments($id) { $documentLists = DB::table('sent_document_user')->select('documents.title', 'categories.category_type', 'documents.content', 'documents.id') ->join('documents', 'documents.id', '=', 'sent_document_user.document.id') ->join('categories', 'categories.id', '=', 'documents.category_id') ->where('documents.id', '=', $id)->first(); return view ('document.readSent')->with('documentLists', $documentLists); }
Посмотреть
<div class = "form-group"> <label for = "title" class = "control-label">Title:</label> <input type = "text" name = "title" class = "form-control" value = "{{ $documentLists->title }}"> </div> <div class = "form-group"> <label for = "category" class = "control-label">Category:</label> <input type = "text" name = "category" class = "form-control" value = "{{ $documentLists->category_type }}"> </div> <div class = "form-group"> <textarea id = "content">{{ $documentLists->content }}</textarea> </div>
Кажется, у вас неправильное имя столбца
->join('documents', 'documents.id', '=', 'sent_document_user.document.id')
Попробуйте send_document_user.document_id вместо send_document_user.document.id
Опечатка:
->join('documents', 'documents.id', '=', 'sent_document_user.document.id') here--^
Так как это a .
, сервер БД интерпретирует его как имя dbname.tablename.fieldname
, и у вас нет базы данных с именем sent_document_user
.