没关系,我是个笨蛋。我有该模型的两个副本。我已经修改了其中一个模型以包含CREATED_AT / UPDATED_AT常量,但是在我的控制器中,我正在调用另一个模型。我感谢人们花时间回复此问题。如果其他人遇到相同的问题,将保留该问题。
根据Laravel 5.8 documentation,可以自定义用于在表中存储时间戳的列的名称:
如果您需要自定义用于存储时间戳的列的名称,则可以在模型中设置CREATED_AT和UPDATED_AT常量。
这是他们给的例子:
class Flight extends Model
{
const CREATED_AT = 'creation_date';
const UPDATED_AT = 'last_update';
}
我正在尝试使它在我的应用程序中运行(如果有所不同,则为Lumen),并且无法正常工作。这是我的模型:
namespace App;
use Illuminate\Database\Eloquent\Model;
class ExternalUsers extends Model
{
protected $table = 'ExternalUsers';
protected $primaryKey = 'username';
public $incrementing = false;
protected $keyType = 'string';
const CREATED_AT = 'createdAt';
const UPDATED_AT = 'updatedAt';
}
每当我尝试更新ExternalUsers表中的现有行时,都会在日志中得到以下错误消息:
PDOException:SQLSTATE [42S22]:找不到列:1054未知列 “字段列表”中的“ ExternalUsers.updated_at”
我在这里做错什么了吗,还是文档不正确?
答案 0 :(得分:0)
使用时间戳字段名称修改模型后,请确保数据库中具有这些字段名称。在您的情况下,表ExternalUsers
应该同时具有两个时间戳字段:createdAt
和updatedAt
,而不是Laravel的默认字段:created_at
和updated_at