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

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

saber

مدیرکل
  • تعداد ارسال ها

    303
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    66

تمامی ارسال های saber

  1. شما متد اسکوپ رو توی مودل User باید بنویسید از اسکوپ برای استفاده از کوئری Model جاری استفاده میکنن ولی کدتون رو توی مودل ActiveCode نوشتید و چون نتیجه درستی برنمیگرده شرطی که گذاشتید درست عمل نمیکنه و به روت token ریدایرکت میشه محل کدها رو تغییر بدید بعد کدتون رو تست کنید
  2. توی کدهاتون متد اسکوپ رو موقع استفاده مقادیر اشتباه بهش پاس دادید توی ورودی متد آبجکت user رو دارید ولی موقع پاس دادن اطلاعات بجای user فقظ phone رو بهش پاس دادید
  3. مشکل اصلی شما رو در تاپیک زیر راه حلش رو نوشتم بعد از ثبت نام هم خطاهای دیگه ای بعد از ثبت کد ارسالی برای کاربر دارید که اونهم مربوط به متد اسکوپ هست که ورودی متد رو باید اصلاح کنید.
  4. یکی از خطاهایی که در هنگام ایجاد سیسام ثبت نام در لاراول ممکن است با آن رو به رو شوید خطایی با پیغام زیر هست 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 هم متدهای خودتون رو پیاده سازی کنید و حالا اینقسمت میتونید بعد از ثبت نام کاربر رو بدون خطا به صفحه بعدی مورد نیازتون ریدایرکت کنید.
  5. متد لاگین رو دوبار نوشتین؟ توی کدهاتون متد login با دو ورودی مختلف هست کدوم رو الان استفاده میکنید؟ و در مورد خطایی که بالا اشاره کردید کلاس User رو چک کنید ببینید از کلاس Authenticatable ارث بری کرده؟ باید مادل یوزر از این کلاس ارث بری کنه اگر باز نتونستید حل کنید خواستید کدهاش رو برام زیپ کنید بفرستید روی سیستم خودم تست کنم
  6. پیاده سازی این موارد بستگی به بیزنس رول پروژه داره و مثلا فردا اگه نمیخواید موارد و محصولات دیگه ای به فروشگاه اضافه کنید که این شرایط رو نداشته باشن برای اینکه کوئریهای اضافه نداشته باشید میتونید به همون جدول محصولات یه گزینه برای جنسیت و یه گزینه برای رده سنی اضافه کنید که ساده ترین حالت هست و کارتون رو اوکی میکنه. ولی اگر چشم انداز پروژه در آینده متفاوت خواهد بود و موارد متفاوت دیگری هم خواهید داشت میتونید از سیستم فیلدهای اضافه استفاده کنید و انواع فیلدها رو ایجاد کنید و در هر محصول یا مجموعه ای که نیاز داشتید از فیلدهای مورد نظر استفاده کنید.
  7. شما همون روشی رو که گفتم انجام بدید کارتون درست پیش میره و مشکلی پیش نمیاد اول شماره موبایل رو تایید و کاربر رو ایجاد میکنید که گفتید مشکلی در اینقسمت ندارید بعد کاربر رو لاگین کنید و با یه میدلور چک کنید ببینید اگر مقدار register_at برای کاربر لاگین شده برابر با null بود کاربر رو به صفحه قوانین منتقل کنید تا ثبت نامش رو تکمیل کنه و در نهایت بعد از تکمیل ثبت نام مقدار register_at رو برابر تایم استمپ بذارید که این رو هم مقدارش رو از کلاس کربن به شکل Carbon::now میتونید دریافت کنید. اگر هم register_at مقدار داشت و کاربر ثبت نامش رو قبلا تکمیل کرده بود به صفحه اصلی هدایت میکنید این روند مشکل شما رو حل میکنه خیلی پیچیدگی خاصی نداره
  8. میتونید در دیتابیس توی جدول کاربران یه فیلد به اسم register_at اضافه کنید که پیشفرض null قرار بدید بعد زمانی که کاربر مراحل ثبت نام رو تموم کرد مقدار register_at رو برابر با تایم استمپ اون تاریخ قرار بدید که مشخص بشه این کاربر در این تاریخ ثبت نامش تموم شده بعد هر بار کاربری لاگین میکنه چک میکنید که اگر مقدار register_at خالی نبود یعنی کاربر ثبت نامش تموم شده و مجاز به دیدن صفحه home یا هر صفحه ای که دوست دارید هست
  9. متد flush هر چیزی که داخل سشن هست رو کلا حذف میکنه برای اینکه مقداری رو داخل سشن قرار بدید که هنگام استفاده از request باید از متد put استفاده کنید که به این شکل هست: $request->session()->put('auth.user_id', $user->id); بعد هر جایی خواستید این مقدار رو دریافت کنید با متد get به شکل زیر دریافت میکنید $request->session()->get('auth.user_id'); ولی در کل در مورد پروژه ای که انجام بدید بهتره روش کارتون رو تغییر بدید چون اینطوری از سشن که استفاده میکنید اگر کاربری کارش رو نیمه کاره بذاره و بعد یه مدت بیاد ادامه بده بخاطر اینکه اطلاعات داخل سشن منقضی میشن برای ادامه کار مشکل میخورید و مجدد کار زیادی برای اعتبار سنجی دوباره شماره موبایل و چک کردن اینکه کاربر از قبل بوده یا خیر انجام بدید. به نظرم بهتر هست بعد از اینکه کاربر شماره موبایل رو تایید کرد و ثبت نام شد بطور اتوماتیک لاگینش رو هم انجام بدید و مراحل بعدی تکمیل فرمها رو انجام بدید و تا زمانی که مرحله ای رو تکمیل نکرده اجازه رفتن به مرحله بعد رو ندید. اینطوری دیگه نیازی به سشن ندارید و بعد از لاگین از طریق هلپر فانکشن auth به همه اطلاعات کاربر دسترسی دارید.
  10. شما با کلید auth.user_id میخواید شناسه کابر رو بگیرید ولی جایی این رو set نکردید زمانی که کاربر رو با متد create ایجاد میکنید بعدش با همون کلید auth.user_id شناسه کاربر رو توی سشن set کنید تا بعدش بتونید با متد get دریافتش کنید. البته اگه بعد ثبت نام کاربر بطور خودکار توی سایت لاگین میشد به این session نیازی نبود و براحتی از طریق هلپر فانکشن auth به اطلاعات کاربر دسترسی داشتین
  11. خب پس مشکل از همون قسمت هست باید ببینید جایی که session رو set میکنید چه ایرادی داره چون اصلا ست نمیشه توی کدهایی که گذاشتید قسمت ست شدن session رو ندیدم
  12. مقدار داخل session رو با dd تست کنید ببینید اصلا بهتون خروجی میده؟
  13. سلام به نظر مشکل بخاطر این هست که شما کلا یوزر رو از دیتابیس حذف میکنید شما بعد از تایید کاربر برای حذف کد ارسالی فقط باید فیلد کد ارسالی رو آپدیت کنید و مقدارش رو خالی بذارید. نباید از متد delete استفاده کنید چون کلا کاربر رو از دیتابیس حذف میکنه و بعد ارور 404 میده چون کاربری وجود نداره
  14. اگه اینقسمت از قبل توی پروژه شما پیاده سازی شده باشه باید داکیومنتهای پروژه رو بررسی کنید ببینید به چه شکلی پیاده سازی شده ولی اگه میخواید اینو توی پروژه خودتون اضافه کنید میتونید از پکیج sanctum که داخل خود لاراول هست استفاده کنید https://laravel.com/docs/9.x/sanctum
  15. بهتره بجای xampp از نرم افزار laragon استفاده کنید که براحتی میتونید نسخه های مختلف php رو روش نصب کنید و هر زمان خواستید براحتی نسخه php رو متناسب با پروژه ای که کار میکنید تغییر بدید و بدون مشکل روی تمام نسخه های مورد نیاز کار کنید
  16. یه راه این هست که موقع ذخیره اطلاعات قبلش چک کنید که نامی که میخواید در تاریخ روز جاری ذخیره کنید قبلا ذخیره شده یا خیر برای اینکار اگه طبق پیشفرض لاراول کار کرده باشید باید یه فیلد created_at داشته باشین و توی کوئری خودتون مشابه کد زیر برای چک کردن تاریخ امروز استفاده کنید $exist_name = Depot::where('name','test_name')->whereDate('created_at', Carbon::today())->first(); if ($exist_name) { // نام تکراری }else{ // نام جدید }
  17. توی کوئری دوم شرط id قرار میدید برای همین فقط اطلاعات یک رکورد مطابق با همون id رو نمایش میده اگه میخواید همه اطلاعات رو نمایش بدید باید این شرط رو بردارید و یا اگه میخواید اطلاعات رو مطابق با چند تا id برگردونید باید شرط رو تغییر بدید و از wherein استفاده کنید
  18. این مشکلات بخاطر اختلالات اینترنت هست از نرم افزارهای فیل تر شکن موقع نصب استفاده کنید تا مشکلی نداشته باشید
  19. saber

    لاراول

    namespace کنترلر رو موقع تعریف route درست وارد نکردید چک کنید ببینید کدوم قسمت از مسیر رو اشتباه وارد کردین
  20. سلام باید به مدیر هاست تیکت بزنید تا براتون ورژن 8 رو قرار بدن الان اکثر سرورها php نسخه 8 رو دارن
  21. روت show رو که تعریف کردین اسم مادل رو قرار ندادید بجای {loco} اینو {locorepairs} بذارید چک کنید
  22. این روت که فرستادید مربوط به روت store و ذخیره اطلاعات هست ولی بالا مشکلی که داشتید مربوط به روت show هست کد همون رو بفرستین
  23. saber

    خطای Database در کار با phpredis

    این پست رو چک کنید تغییرش رو انجام بدید ببینید چه نتیجه ای میده https://stackoverflow.com/questions/66693331/class-redis-not-found-after-install-predis-in-laravel
  24. route مربوط به متد show رو چطوری ایجاد و فراخوانی کردین؟ کدهاش رو قرار بدید ببینیم
  25. سلام لینک زیر رو بررسی کنید ببینید احیانا جایی از کار رو اشتباه انجام نداده باشید https://unisharp.github.io/laravel-filemanager/integration
×
×
  • جدید...