【发布时间】:2013-07-01 22:24:21
【问题描述】:
当我想更新 FaqTrans 数据库时,但这个数据集有两个主键(faq_ida 和 lang)$table->primary(array('lang', 'faq_id'));。所以我不需要带有 auto_increment 的 id 列。
但是,当我使用以下代码更新数据库时,错误消息提示我没有id 列。
$faq_trans = FaqTrans::where('faq_id','=',$faq_id)->where('lang','=',$lang)->first();
$faq_trans->lang = Input::get('lang');
$faq_trans->body = Input::get('body');
$faq_trans->title = Input::get('title');
$faq_trans->save();
错误信息
SQLSTATE[42S22]:找不到列:1054 未知列 'id' 在 'where 子句' (SQL: 更新
FAQtrans设置body= ?,updated_at= ? 其中id为空)(绑定:数组(0 => 'adfadaaadfadaa', 1 => '2013-07-04 11:12:42',))
当我添加id 列时,代码运行良好...
有什么方法可以在没有 ID 列的情况下更新数据库?
【问题讨论】:
-
你的模型中是否设置了主键
-
我尝试在模型中设置主键,但似乎无法同时设置两个主键(复合键),如
protected $primaryKey = array('lang''faq_id'); -
您可能必须使用
->update(array('column' => 'value'))而不是使用保存。 -
->update(array)不适合我,我只能使用save()并且文档也使用save()来更新数据.. -
你试过只设置一个主键
标签: php laravel laravel-4 eloquent