初学Laravel4常见的问题之三

本文解决了一个在使用Laravel4的Eloquent ORM时遇到的SQLSTATE[42S22]错误,原因是表中缺少ORM默认关联的updated_at和created_at字段。通过重置$timestamps属性为false,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题表述:

Illuminate \ Database \ QueryException (42S22)

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list' (SQL: insert into `stocks` (`stock_code`, `bigbuy`, `bigsell`, `updated_at`, `created_at`) values (883300, 2002343, 2093232, 2015-06-25 06:17:46, 2015-06-25 06:17:46))


导致原因:是因为Laravel4里的Eloquent ORM当你继承Eloquent类时,默认情况是:你创建的类名的复数形式是一个真实表名,在这个表中还有 updated_at`, `created_at` ,ID  这三个字段。而我建的表stocks里没有 updated_at和created_at这两个字段。要想解决这个问题就得重新定义属性去覆盖父类的属性。


解决办法:
class Stock extends Eloquent  {
	
	public $timestamps = false;
}



至此完美解决改问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值