未找到列:1054使用加入

时间:2016-08-04 14:23:08

标签: php laravel join laravel-5.2

我正在尝试根据我使用first方法加入的用户选择的值来检索值。但是当我试图将值放在我的表单中时。它说

  

SQLSTATE [42S22]:未找到列:1054'on子句'中的未知列'sent_document_user.document.id'(SQL:选择documentstitlecategories。{ {1}},category_typedocumentscontentdocuments来自id sent_document_user documents documents id。 1}} = sent_document_userdocumentid内部加入categories位于categoriesid = documents。{{1其中category_iddocuments = 241限制1)``

我正确地加入了它我不知道为什么我无法检索我选择的值。这是我在SQL中的代码运行良好。

id

控制器

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);
}

2 个答案:

答案 0 :(得分:3)

错字:

->join('documents', 'documents.id', '=', 'sent_document_user.document.id')
                                                               here--^

由于这是.,因此数据库服务器会将其解释为dbname.tablename.fieldname,而您没有名为sent_document_user的数据库。

答案 1 :(得分:0)

您的列名称似乎不正确

 ->join('documents', 'documents.id', '=', 'sent_document_user.document.id')

尝试 sent_document_user.document_id ,而不是 sent_document_user.document.id