在新增資料的時候,是否可以透過valdiate驗證資料是否存在於關係表中?
人生最曼妙的风景,竟是内心的淡定与从容!
https://laravel.com/docs/5.3/...
可以自訂驗證, 看起來有點複雜.....鄙人等級有限, 可自行看官方文件
還可以自以為簡單粗暴的方法, 在 Controller 中寫你連表查詢驗證邏輯如果異常手動重定向並且拋出錯誤, 如下段代碼
Controller
public function store(Request $request) { $this->validate($request, [ 'password' => 'required|min:6|max:100', 'newPassword' => 'required|min:6|max:100', 'newPasswordConfirm' => 'required|same:newPassword|min:6|max:100', ], [], [ 'password' => '旧密码', 'newPassword' => '新密码', 'newPasswordConfirm' => '确认新密码', ]); #这个地方就是个自定异常的演示, 并不是你要的连表查询, 这里只提供一个思路 if (!\Hash::check($request->get('password'), \Auth::user()->password)) { return redirect()->back()->withErrors(['password' => '旧密码错误']); } }
可以,使用exists規則,例如
exists
'exists:表名,字段名'
根據你的情況,使用自帶規則無法滿足,需要自己創建新的規則,這裡以創建一個驗證中文的規則為例
$validator = app('validator'); $validator->extend('chinese', function($attribute, $value, $parameters, $validator) { return Validator::chinese($value); }); $validator->replacer("chinese", function($message, $attribute, $rule, $parameters) { if ($message == 'validation.chinese') { return "属性 {$attribute} 必须是合法的中文"; } return $message; });
具體參考文件 Custom Validation Rules 部分。
https://laravel.com/docs/5.3/...
可以自訂驗證, 看起來有點複雜.....鄙人等級有限, 可自行看官方文件
還可以自以為簡單粗暴的方法, 在
Controller
中寫你連表查詢驗證邏輯如果異常手動重定向並且拋出錯誤, 如下段代碼可以,使用
exists
規則,例如根據你的情況,使用自帶規則無法滿足,需要自己創建新的規則,這裡以創建一個驗證中文的規則為例
具體參考文件 Custom Validation Rules 部分。