項目中需要對字段進行驗證,本人使用的是控制器驗證方式。話不多說,直接上報錯信息:
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]);
}