laravel - 修复唯一验证规则 Laravel 6.x
问题描述
我正在为 users 表创建 Laravel Auth Panel System(admin, student, staff)。然后再次 Laravel Auth Apply for Vacancy 到 vacancys 表。然后再次 Laravel Auth Apply for Admission to the admissions 表。如果此任务完成,那么我们需要将(录取和空缺)表中的所有记录捕获到用户表中。修复 Laravel 6.x 唯一验证规则。Giving Error 显示在刀片模板表单上 cnic 已被占用。
职位空缺表
public function up()
{
Schema::create('vacancies', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('cnic');
$table->string('user_role')->default('staff');
$table->string('password');
$table->timestamps();
});
}
空缺模型
class Vacancy extends Authenticatable
{
use Notifiable;
protected $guard='vacancy';
protected $fillable = ['cnic','password',];
protected $table = 'vacancies';
protected $dates = ['created_at', 'updated_at'];
}
空缺登记控制器
protected function validator(array $data)
{
return Validator::make($data, [
'cnic' => ['bail','required', 'string', 'unique:vacancies','regex:[\d{13}]'],
'password' => ['bail','required', 'string',],
]);
}
空缺控制器
class VacancyController extends Controller
{
use AuthenticatesUsers;
protected function guard()
{
return Auth::guard('vacancy');
}
public function username()
{
return 'cnic';
}
public function login(Request $request){
if (DB::table('vacancies')->where('cnic',$request->has('cnic'))->exists()){
$this->validate($request,[
'cnic' => ['bail','required','unique:vacancies', 'string','regex:[\d{13}]'],
'password' => ['bail','required', 'string',],
]);
if (Auth::guard('vacancy')->attempt(['cnic' => $request->has('cnic'),'password' => $request->has('password')])){
return '/vacancy';
}
}
elseif (DB::table('vacancies')->where('cnic',$request->has('cnic'))->doesntExist()){
$data= new VacancyRegisterController();
return $data->register($request);
}
else{
return redirect('/');
}
}
}
网页.php
Route::post('/login-vacancy','Auth\VacancyController@login')->name('v-login');
Route::post('/logout-vacancy','Auth\VacancyController@logout')->name('v-logout');
Route::middleware('auth')->group(function (){
Route::get('/vacancy',function (){
return view('vacancy.vacancy');
})->name('staff-vacancy');
});
解决方案
推荐阅读
- numpy - PySpark:在访问 RowMatrix 对象期间出现错误“没有名为 'numpy' 的模块”
- reactjs - 如何根据身份验证状态和角色显示不同的导航栏?
- javascript - 我在使用这个 ajax 计时器时遇到问题,它没有按照我的预期执行并且没有执行
- html - 如何将 JSON 对象用于src 标签?
- firebase - 无法从其他文件方法访问参数
- python - 为什么 Tensorflow 张量索引在标准化流“概率”方法中失败
- typescript - 如何使 Typescript 接口属性依赖于另一个属性
- angular - 测试值被 Angular 中的可观察响应改变
- web - ColdFusion Web Service 在调用语句上突然抛出错误
- amazon-web-services - 无法从 POST req 读取有效负载到 API G/W 端点触发 Lambda