项目中需要对字段进行验证,本人使用的是控制器验证方式。话不多说,直接上报错信息:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'skxx.sk_' doesn't exist
意思是数据库skxx中的某张表不存在!
看代码:
//验证规则
$rules = [
'code' => 'require|unique', //原因就出在这里,需要在规则中添加表名:格式为-->'require|unique:purchase'. 那是不是每一条都要加呢,答案是不需要
'name' => 'require',
'supplier_id' => 'require',
'deliver_time' => 'date',
'amount' => 'number',
'amount_paid' => 'number',
'rows' => 'require',
//预留验证
];
//错误信息
$message = [
'code.require' => '订单编号必填',
'code.unique' => '该编号已存在,请使用其他编号',
'name.require' => '订单名称必填',
'supplier_id' => '请选择供应商',
'deliver_time.date' => '交付日期必须为日期格式',
'amount.number' => '订单金额必须为数字',
'amount_paid.number' => '已付金额必须为数字',
'rows.require' => '请添加物料信息',
];
$result = $this->validate($data, $rules, $message);
if (true !== $result) {
return json(['code' => 1, 'msg' => $result]);
}