Я создаю Laravel Auth Panel System (администратор, студент, персонал) для таблицы пользователей. Затем снова Laravel Подать заявку на вакансию в таблицу вакансий. и затем снова Laravel Auth Подать заявку на допуск к таблице допущений. если эта задача выполнена, то нам нужно отловить все записи из таблицы (поступления и вакансии) в таблицу пользователей. Исправление Laravel 6.x Уникального правила проверки. Ошибка выдачи отображается на шаблонной форме блэйда Cni c уже занято.
Таблица вакансий
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'];
}
VacancyRegisterController
protected function validator(array $data)
{
return Validator::make($data, [
'cnic' => ['bail','required', 'string', 'unique:vacancies','regex:[\d{13}]'],
'password' => ['bail','required', 'string',],
]);
}
VacancyController
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');
});