【问题标题】:Column not found: 1054 Unknown column using join未找到列:1054 使用连接的未知列
【发布时间】:2016-08-04 14:23:08
【问题描述】:

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

SQLSTATE[42S22]:找不到列:1054 'on 子句'中的未知列'sent_document_user.document.id'(SQL:选择documents.titlecategories.category_typedocuments .content, documents.id from sent_document_user 内连接 documents documents.id = sent_document_user.document.categories@内连接 @988 .id = documents.category_id 其中documents.id = 241 限制 1)``

我正确加入它我不知道为什么我无法检索我选择的值。这是我在 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>

【问题讨论】:

  • 如何使用sent_document_user.document.id 。你的意思是sent_document_user.document 在查询中

标签: php laravel join laravel-5.2


【解决方案1】:

错别字:

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

因为这是一个.,所以数据库服务器将它解释为dbname.tablename.fieldname,而您没有名为sent_document_user 的数据库。

【讨论】:

    【解决方案2】:

    您的列名似乎不正确

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

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

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 2016-04-09
      • 1970-01-01
      • 2020-05-13
      • 2019-01-13
      • 2012-08-18
      • 1970-01-01
      • 2016-04-29
      相关资源
      最近更新 更多