当前位置: 首页 > 知识库问答 >
问题:

未找到laravel列:1054 order子句中的未知列“created_at”

金阳曜
2023-03-14

我已经定义了不使用时间戳,但仍然使用laravel强制使用时间戳...我使用laravel 5.6。

例如,当我访问页面时-http://mypage/api/videos/21/comments 我得到一个错误-“SQLSTATE[42S22]:未找到列:在“order子句”(SQL:select*fromvideos\u commentswherevideos\u comments视频id=▶"

app/Providers/VideoComment.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class VideoComment extends Model
{
protected $table = 'videos_comments';
public $timestamps = false;
protected $fillable = [
  'text', 'userid', 'date'
];
public function videos() {
  return $this->belongsTo('App\Video', 'id', 'video_id');
}
public function member() {
  return $this->belongsTo('App\Member', 'userid', 'member_id');
}
}

app/Providers/Video.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Cviebrock\EloquentSluggable\Sluggable;

class Video extends Model
{
protected $table = 'videos';
public $timestamps = false;
use Sluggable;

public function sluggable() {
  return [
      'slug' => [
          'source' => 'title'
      ]
    ];
}
public function comments() {
  return $this->hasMany('App\VideoComment', 'video_id', 'id');
}
public function member() {
  return $this->belongsTo('App\Member', 'userid', 'member_id');
}
}

VideoCommentController.php功能

   public function index(Video $video) {
    return response()->json($video->comments()->with('member')->latest()->get());
   }

共有3个答案

尉迟栋
2023-03-14

当您尚未在列中创建时,您可以轻松地使用orderByfirst()而不是latest()

马奇略
2023-03-14

如果您在查询中使用了最新(),那么您必须在数据库表中添加created_at,请阅读更多内容。

傅星光
2023-03-14

最新和最旧的方法允许您轻松地按日期排序结果。默认情况下,结果将按创建的_at列排序

 类似资料:
  • 关于,我正在使用主键=idusuarios的同一视图更新一个名为usuarios的表,insert使我完美地解决了问题,因为当我要更新时,它会生成错误 SQLSTATE[42S22]:找不到列: 1054未知列'usuarios.id'in'where子句'(SQL: Select*fromwhere. 这是我的密码 模型 类Usuario扩展模型{ 另一张表的模型 控制器 公理

  • 我试图运行一个Laravel查询,选择一个出现多次的特定字段,我得到了下面的错误。 “SQLSTATE[42S22]:未找到列:1054”“having子句”“中的未知列”“no_of_service”“(SQL:select count(*)作为内部连接在上的按分组,具有 我希望看到多次出现的字段。

  • 我使用的框架Laravel。 我有两个表(用户和成员)。当我想登录时,我会收到错误消息: SQLSTATE[42S22]:找不到列: 1054未知的列'user_email'in'where子句'(SQL:选择*fromwhere=?限制1)(绑定:数组(0= 表用户 表成员 迁移用户 移民成员 模型用户 模范会员 成员模型使用:使用照明\Auth\UserInterface; 控制器 auth.

  • 此函数有问题。它应该返回使用下面的sql调用收集的数据的json字符串。问题是,当通过服务器访问页面时(例如-localhost/app/API/states/Alabama/1/10.json),我得到一个错误代码“500”。奇怪的是,数据在使用.json和不使用appending.json的情况下按预期显示。据我所知,控制器和模型设置得很好,但错误代码仍然存在: {“code”:500,“ur

  • 问题内容: 我正在使用Laravel框架。 我有2个表(用户和成员)。当我想登录时,收到错误消息: SQLSTATE [42S22]:找不到列:1054’where子句’中的未知列’user_email’(SQL:select * from where =?limit 1)(绑定:数组(0 =>'test@hotmail.com‘,)) 表用户 表成员 迁移用户 移民会员 模型使用者 模范会员 成

  • 问题内容: 我有以下MySQL查询: 我收到此错误: #1054-‘on子句’中的未知列’p.id’ 据我所知,查询看起来是正确的,知道发生什么了吗? 问题答案: 不要混合使用ANSI-89样式和ANSI-92样式的连接。它们具有不同的优先级,这可能导致混乱的错误,这就是这里发生的情况。您的查询的解释如下: 在上面的示例中,在甚至考虑了逗号样式的连接之前,首先评估使用JOIN关键字的连接。届时该表