رفتن به مطلب
انجمن پشتیبانی لاراول ایران

هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست

تمامی فعالیت ها

این جریان به طور خودکار بروز می شود     

  1. دیروز
  2. هفته گذشته
  3. دیدم اونو ولی متوجه نمیشم
  4. سلام وقت بخیر. آموزش احراز هویت پیامکی با موبایل در لاراول رو سرچ کنی سایت 7learn آموزشش رو قرار داده، شاید api هم وجود داشته باشه اما من تاحالا تست نکردم بخاطر همین بیشتر نمی‌تونم راهنمایی کنم.
  5. جدیدا
  6. سلام شب بخیر من میخام فراموشی رمز عبور با شماره موبایل انجام بدم اموزشی هست که بتونم طبق اون پیش برم ؟ به جای اینکه لینک ایمیل بشه میخام به شماره موبایل کاربر ارسال بشه یا روشی اگه هست ممنون میشم راهنمایی کنید
  7. مشکل رفع شد مشکل از روت هام بود براش اشتباهی میدلور guest برای روت home تعریف شده بود و با یه تغییر تو کنترلر مشکل رفع شد ممنونم از راهنمایی های شما خیلی خیلی لطف کردید
  8. سلام متاسفانه این دو جلسه فایل هاش موجود نیست از دوستان اگه کسی موجود داره لطفا آپلود کنه که آموزش ما هم تکمیل بشه.ممنون
  9. این تیکه کد گذاشتم تو مدل user public function scopeVerifyCode($query , $code, $user) { return !! $user->activeCode()->whereCode($code)->where('expired_at' , '>' , now())->first(); } و کنترلر هم به این شکل $status = ActiveCode::verifyCode($request->token , $user); اروری که دریافت کردم Call to undefined method App\Models\ActiveCode::verifyCode() دقیقا به همون لاین وریفای کد تو کنترلر ارور داده
  10. شما متد اسکوپ رو توی مودل User باید بنویسید از اسکوپ برای استفاده از کوئری Model جاری استفاده میکنن ولی کدتون رو توی مودل ActiveCode نوشتید و چون نتیجه درستی برنمیگرده شرطی که گذاشتید درست عمل نمیکنه و به روت token ریدایرکت میشه محل کدها رو تغییر بدید بعد کدتون رو تست کنید
  11. کنترلر به این شکل نوشتم و متد اسکوپ کامنت کردم بازهم برمیگرده به روتی که کد وریفای باید وارد بشه public function token(Request $request , User $user) { $request->validate([ 'token' => 'required' ]); $count = $user->activeCode()->whereCode($request->token)->where('expired_at' , '>' , now())->count(); if(! $count) { return redirect(route('phone.token')); } auth()->loginUsingId($user->id,$request->get('auth.remember')); $user->activeCode()->delete(); return redirect('/home'); }
  12. من تو کنترلر به این شکل تغییر دادم این درسته یا این هم اشتباهه؟ $status = ActiveCode::verifyCode($request->token , $user); چون دوباره برمیگرده به صفحه وریفای کد تو متد اسکوپ نمیدونم چطوری باید بنویسم
  13. توی کدهاتون متد اسکوپ رو موقع استفاده مقادیر اشتباه بهش پاس دادید توی ورودی متد آبجکت user رو دارید ولی موقع پاس دادن اطلاعات بجای user فقظ phone رو بهش پاس دادید
  14. ممنون از راهنماییتون مهندس لطف کردید پس بهتره خودمون بنویسیم روت هارو بله الان از متد اسکوپ ارور گرفته Call to a member function activeCode() on null ورودی به چه صورت باید بنویسم public function scopeVerifyCode($query , $code, $user) { return !! $user->activeCode()->whereCode($code)->where('expired_at' , '>' , now())->first(); } مدل یوزر که نباید باشه درسته؟چون ارور دریافت کردم وقتی مدل پاس دادم
  15. مشکل اصلی شما رو در تاپیک زیر راه حلش رو نوشتم بعد از ثبت نام هم خطاهای دیگه ای بعد از ثبت کد ارسالی برای کاربر دارید که اونهم مربوط به متد اسکوپ هست که ورودی متد رو باید اصلاح کنید.
  16. یکی از خطاهایی که در هنگام ایجاد سیسام ثبت نام در لاراول ممکن است با آن رو به رو شوید خطایی با پیغام زیر هست lluminate\Auth\SessionGuard::login(): Argument #1 ($user) must be of type Illuminate\Contracts\Auth\Authenticatable, Illuminate\Http\RedirectResponse given, called این خطا زمانی رخ میدهد که شما از روتهای پیشفرض auth استفاده کنید و در متدهای کنترلر بخواهید بعد از ثبت نام کاربر را به لینک خاصی ریدایرکت کنید چون متدهای پیشفرض متصل به روتهای auth در لاراول موقع ثبت نام باید آبجکت user را برگشت بدهند و اگر از متد ریدایرت در اینقسمت استفاده کنید با خطای بالا مواجه خواهید شد. برای حل این مشکل و رفع خطا باید روتهای پیشفرض auth را که در فایل web.php استفاده کردید حذف و با روت جدید اورراید کنید و در روتهای جدید با متدهای جدید موارد مورد نیاز خود را پیاده سازی کنید. برای اورراید روتها مثلا برای ثبت نام باید متدهایی شبیه کد زیر بنویسید Route::get('register', 'App\Http\Controllers\Auth\RegisterController@showRegistrationForm')->name('register'); Route::post('register', 'App\Http\Controllers\Auth\RegisterController@create'); و در کنترلر RegisterController هم متدهای خودتون رو پیاده سازی کنید و حالا اینقسمت میتونید بعد از ثبت نام کاربر رو بدون خطا به صفحه بعدی مورد نیازتون ریدایرکت کنید.
  17. من موفق نشدم انجام بدم کد براتون ارسال کردم تو پیام خصوصی انجمن تو تلگرام هم فرستادم
  18. متد لاگین رو دوبار نوشتین؟ توی کدهاتون متد login با دو ورودی مختلف هست کدوم رو الان استفاده میکنید؟ و در مورد خطایی که بالا اشاره کردید کلاس User رو چک کنید ببینید از کلاس Authenticatable ارث بری کرده؟ باید مادل یوزر از این کلاس ارث بری کنه اگر باز نتونستید حل کنید خواستید کدهاش رو برام زیپ کنید بفرستید روی سیستم خودم تست کنم
  19. اینجا مشکل از remmber هست ؟ اروری که داده این لاین از متد اشاره کرده public function login(AuthenticatableContract $user, $remember = false) تو متد token به این شکل نوشتم public function token(Request $request , User $user) { $request->validate([ 'token' => 'required' ]); $status = ActiveCode::verifyCode($request->token , $user); if(Auth::loginUsingId($user->id , $request->get('remember'))) { $user->activeCode()->delete(); return redirect('/'); } if($status) { return redirect(route('rule')); } else { // alert()->error('شماره تلفن و احرازهویت دو مرحلهای شما تایید نشد.' , 'عملیات ناموفق بود'); return redirect(route('phone.token')); } return redirect(route('phone.token')); } تو loginController به این شکل نوشتم که نمیدونم اشتباه از متد token هست یا متد login اینجا validate تو متد login باشه مشکلی نداره؟ public function login(Request $request) { $request->validate([ 'phone' => 'required|exists:users,phone|digits:11|numeric|regex:/[0]{1}[0-9]{10}/', 'password' => 'required|string', ]); $remember = ($request->has('remember')) ? true : false; return redirect()->route('home'); }
  20. تو متد token به این شکل هم نوشتم باز اشتباهه درسته ؟ $user = User::find($request->user()->id); $status = ActiveCode::verifyCode($request->token , $user); if(Auth::loginUsingId($user->id , true)) { $user->activeCode()->delete(); return redirect('/'); }
  21. ارور از سمت سرویس پیامک بود حل شد الان این ارور دارم lluminate\Auth\SessionGuard::login(): Argument #1 ($user) must be of type Illuminate\Contracts\Auth\Authenticatable, Illuminate\Http\RedirectResponse given, called in C:\xampp\htdocs\project\vendor\laravel\ui\auth-backend\RegistersUsers.php on line 36 کد ادامه بخش چجوری به هلپر فانکشن ورود دسترسی داشته باشم کاربر لاگین بشه ؟ این شکلی که نوشتم ارو بالا گرفتم public function showToken() { return view('auth.code'); } public function token(Request $request) { $user = $request->validate([ 'token' => 'required' ]); $status = ActiveCode::verifyCode($request->token , $user); if(auth()->loginUsingId($request->user()->get('auth.remember'))) { $user->activeCode()->delete(); return redirect('/'); } if($status) { return redirect(route('rule')); } else { // alert()->error('شماره تلفن و احرازهویت دو مرحلهای شما تایید نشد.' , 'عملیات ناموفق بود'); return redirect(route('phone.token')); } return redirect(route('phone.token')); }
  22. سشن رو برداشتم مثل همون ارور بالا رو دارم این کد مشکلی داره ؟ protected function validator(array $data) { return Validator::make($data, [ 'phone' => 'required|unique:users,phone|digits:11|numeric|regex:/[0]{1}[0-9]{10}/', 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\Models\User */ protected function create(array $data) { $user = User::create([ 'phone' => $data['phone'], 'password' => Hash::make($data['password']), ]); $apiKey = config('services.ghasedak.key'); $code = ActiveCode::generateCode($user); try{ $message = "کد احراز هویت شما : " . $code . " "; $lineNumber = "10008566"; $receptor = $data['phone']; $api = new \Ghasedak\GhasedakApi($apiKey); $api->SendSimple($receptor,$message,$lineNumber); } catch(ApiException $e){ throw $e; } catch(HttpException $e){ throw $e; } return redirect(route('phone.token')); } کد تو دیتابیس ساخته میشه ولی اس ام اس نمیشه و از این لاین ارور میگیره $api->SendSimple($receptor,$message,$lineNumber);
  23. پیاده سازی این موارد بستگی به بیزنس رول پروژه داره و مثلا فردا اگه نمیخواید موارد و محصولات دیگه ای به فروشگاه اضافه کنید که این شرایط رو نداشته باشن برای اینکه کوئریهای اضافه نداشته باشید میتونید به همون جدول محصولات یه گزینه برای جنسیت و یه گزینه برای رده سنی اضافه کنید که ساده ترین حالت هست و کارتون رو اوکی میکنه. ولی اگر چشم انداز پروژه در آینده متفاوت خواهد بود و موارد متفاوت دیگری هم خواهید داشت میتونید از سیستم فیلدهای اضافه استفاده کنید و انواع فیلدها رو ایجاد کنید و در هر محصول یا مجموعه ای که نیاز داشتید از فیلدهای مورد نظر استفاده کنید.
  24. سلام . من یک سایت فروشگاه اسباب بازی دارم . جدول category جدول دسته بندی محصولات هست که ایجاد کردم . مثلا در جدول category داریم : عروسک ، ماشین ، تفنگ و ... A : از طرفی هر محصول یا دخترانه یا پسرانه هست . : دخترانه ، پسرانه B : و مربوط به یک رده ی سنی میباشد . مثلا زیر 1 سال ، 1 تا 3 سال ، 3 تا 5 سال و ... میخوام بدونم مورد A و B رو کجا قرار بدم . در جدول دسته بندی ؟ یا در جدول product? یا براشون جدول جدا تعیین کنم ؟ کدوم بهینه تره ؟ اخه در منوها ی سایت اصلی اینا رو دارم : دسته بندی محصولات . دخترانه / پسرانه رده ی سنی
  25. شما همون روشی رو که گفتم انجام بدید کارتون درست پیش میره و مشکلی پیش نمیاد اول شماره موبایل رو تایید و کاربر رو ایجاد میکنید که گفتید مشکلی در اینقسمت ندارید بعد کاربر رو لاگین کنید و با یه میدلور چک کنید ببینید اگر مقدار register_at برای کاربر لاگین شده برابر با null بود کاربر رو به صفحه قوانین منتقل کنید تا ثبت نامش رو تکمیل کنه و در نهایت بعد از تکمیل ثبت نام مقدار register_at رو برابر تایم استمپ بذارید که این رو هم مقدارش رو از کلاس کربن به شکل Carbon::now میتونید دریافت کنید. اگر هم register_at مقدار داشت و کاربر ثبت نامش رو قبلا تکمیل کرده بود به صفحه اصلی هدایت میکنید این روند مشکل شما رو حل میکنه خیلی پیچیدگی خاصی نداره
  26. آموزشی هست که معرفی کنید ؟ یکم گیج شدم برای ادامه روند برام خیلی مهمه و 3 هفته متاسفانه درگیر این بخش هستم یه آموزش خریدم قبلا ولی برای ورود بود ، کد زمان ثبت نام ارسال نمیشد فقط زمانی که کاربر وارد میشه ارسال کد انجام میشه آموزش های یوتیوب هم به همین شکل بود من میخام یک بار موقع ثبت نام کد احراز هویت ارسال بشه و دفعات بعد کاربر از طریق شماره موبایل و رمز عبور وارد بشه ارسال کد انجام میشه اکیه فقط همون بخش که گفتم مشکل دارم ، روش درست برام مهمه که فرمودید نیاز به سشن نیست
  27. با میدلور هم میشه انجام داد؟ چطوری میتونم مقدار register_at رو برابر با تایم استمپ تاریخ قرار بدم ؟
  28. میتونید در دیتابیس توی جدول کاربران یه فیلد به اسم register_at اضافه کنید که پیشفرض null قرار بدید بعد زمانی که کاربر مراحل ثبت نام رو تموم کرد مقدار register_at رو برابر با تایم استمپ اون تاریخ قرار بدید که مشخص بشه این کاربر در این تاریخ ثبت نامش تموم شده بعد هر بار کاربری لاگین میکنه چک میکنید که اگر مقدار register_at خالی نبود یعنی کاربر ثبت نامش تموم شده و مجاز به دیدن صفحه home یا هر صفحه ای که دوست دارید هست
  1. نمایش فعالیت های بیشتر
×
×
  • جدید...