سلام دوستان
من برای احراز هویت با کد ملی یک روت ایحاد کردم به اسم registerform که ابتدا کاربران باید کد ملیشون تایید بشه
تا بتونن وارد روت register بشن تا اینجا اکیه
مشکلی که داشتم این بود که اگه به صورت دستی تو مرورگر تایپ میکردمregister وارد روت میشد و ریدایرکتی انجام نمیشد
تو گفتگو قبل دوستان گفتن میدلور ایجاد کن
من میدلور ایجاد کردم مشکل ریدایرکت حل شد ولی ثبت نام دیگه انجام نمیشه و همینطور این میدلوری که تعریف کردم حتی بعد از اینکه ثبت نام کاربر انجام میشه ریدایرکت میکنه به روت registerform
کدهای register controller
protected function validator(array $data , Request $request)
{
if($request->session()->has('codmeli'))
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['nullable','string', 'email', 'max:255', 'unique:users'],
'phone_number' => 'required|string|unique:users|max:255',
'codemeli' => ['required', new Nationalcode],
'courseName' => 'required|string|max:255',
'password' => ['required', 'string', 'min:8', 'confirmed'],
'g-recaptcha-response' => ['required' , new Recaptcha]
]);
}
}
registerForm
public function registerform(Request $request)
{
$this->validate($request,[
'codemeli' => ['required', new Nationalcode],
'g-recaptcha-response' => ['required' , new Recaptcha]
]);
$request->session()->flash('codemeli');
return redirect(route('register'));
}
روت نمیدونستم چطوری به میدلور ست کنم به این شکل نوشتم
Route::middleware(['auth.register'])->group(function(){
Auth::routes(['verify' => true]);
});
میدلور
public function handle($request, Closure $next)
{
if ($request->session()->has('codemeli')) {
return $next($request);
} else {
return redirect('/register');
}
}
اینم کرنل
'auth.register' => \App\Http\Middleware\RegisterCod::class,
سلام وقت بخیر ، این میدلور رو شما فقط بر روی یک روت باید ست کنی !! همون روتی که کاربر سرچ میکنه و صفحشو میاره.
میدلور هم باید به این صورت نوشته بشه
Route::post('/payment', [HomeController::class , 'payment'])->middleware('auth.register');
سلام
میخواستم رو یه روت بزارم ولی روت ثبت نام پیش فرص خود لاراول هست
Auth::routes(['verify' => true]);
جدا از اون روت بالا روت register تعریف کردم ولی نتیجه نگرفتم
در این صورت باید به جای روت بالا برای تک تک روت هایی که این روت ایجاد میکنه
Auth::routes(['verify' => true]);
خودم روت بنویسم ؟
واقعیتش نمیدونم به چه صورتی میشه کدش...
شما کد های داخل میدلور رو کات کن بزار داخل کنترلی که ویو فرم رو برمیگردونه فقط به این صورت میشه اگر سشن ست شده بود بزار فرم رو ببینه یعنی return view انجام میشه اگر نه فرستاده میشه واسه رجیستر
@eniack
تو کنترلر registerCod باید بزارم؟
تو register گذاشتم جواب نداد تو registeerCod هم جواب نداد
البته نمیدونم درست تعریفش کردم یا نه
میشه بگید چجوری باید تو کدوم کنترلر تعریفش کنم
شما یک روت get دارید به اسم register داخل این متد کد رو بنویس که اگر سشن ست شده بود بزار صفحه رو ببینه یعنی کد مثلا return view ('register') اجرا بشه اگر سشن ست نشده بود این کد اجرا بشه
return redirect('/register');
@eniack
به این شکل نوشتم تاثیری نداشت
نمیدونم درست یا غلط
protected function validator(array $data , Request $request)
{
if($request->session()->has('codmeli'))
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['nullable','string', 'email', 'max:255', 'unique:users'],
'phone_number' => 'required|string|unique:users|max:255',
'codemeli' => ['required', new Nationalcode],
'courseName' => 'required|string|max:255',
'password' => ['required', 'string', 'min:8', 'confirmed'],
'g-recaptcha-response' => ['required' , new Recaptcha]
]);
return redirect('/registerform');
}
else
{
return redirect('/register');
}
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟