我有这个表武器,其列有武器ID,武器名,wStock,wDesc
在控制器内部的更新功能中,我有这套规则
public function c_updateSystemUser($id)
{
$rules = array(
'weaponName' => 'required|min:2|max:50|regex:/^[a-zA-Z0-9\-\s]+$/|unique:weaponTbl,weaponName,' . $id,
'wStock' => 'required|numeric',
'wDesc' => 'required|min:1|max:100|regex:/^[a-zA-Z0-9\-\s]+$/'
);
//other stuff
}
当我更新并且只更改了wStock它有问题因为它说武器名已经存在。所以我使用了独特的规则
unique:weaponTbl,weaponName,' . $id,
因为我想除了我目前正在处理的记录,但是当我测试它时我有这些错误
Column not found: 1054 Unknown column 'id' in 'where clause'
(SQL: select count(*) as aggregate from `weaponTbl` where `weaponName` = unicorn and `id` <> 1)
为什么它只使用id,而我的表中没有'id'但只有武器ID?有没有办法解决这个问题?
答案 0 :(得分:1)
在武器类中,您需要更改主键:
class Weapon extends Eloquent {
protected $primaryKey = 'weaponID';
}
然后将唯一规则更改为:
unique:weaponTbl,weaponName,' . $id . ',weaponID'