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

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

saber

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

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

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

  • Days Won

    77

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

  1. خطایی که گفتید در کنسول هست توی صفحه جیکوئری رو لود کردید؟ ممکنه بخاطر لود نشدن جیکوئری بهتون خطا داده باشه. و اینکه الان توی متد ذخیره شما شناسه کاربری که پروفایلش مشاهده شده رو ذخیره نمیکنید و فقط شناسه کاربر لاگین شده رو ارسال میکنید
  2. بله جدول منطقه باید فیلد status رو داشته باشه که بتونید فعال یا غیرفعال کنید شما توی صفحه دو تا دکمه فعال و غیرفعال باید داشته باشید بعد شهر که انتخاب شد و لیست مناطق رو دریافت کردید به حالت لیست نمایش بدید و حالا به یه روشی مثل رنگبندی متفاوت فعال یا غیرفعال بودن هر منطقه رو هم مشخص کنید. لیست مناطق رو هم که نمایش میدید در کنار اسم هر منطقه یک input از نوع checkbox قرار بدید و value رو برابر با شناسه منطقه جاری قرار بدید بعد هر کدوم از مناطق رو که خواستید فعال یا غیرفعال کنید میتونید تیک بزنید و دکمه مورد نظر حال فعال یا غیرفعال رو کلیک کنید و عملیات مورد نظرتون رو انجام بدید
  3. یه مشکلی که دارید داخل متد is_favorite_by_auth_user شناسه کاربری رو که لاگین کرده با کد Auth::id دریافت میکنید و در داخل آرایه کاربران جستجو میزنید که این اشتباه هست شما باید لیست کاربران دلخواه کاربری رو که لاگین کرده دریافت کنید بعد باید چک کنید شناسه پروفایل کاربری که ازش بازدید میکنید در بین این شناسه ها وجود داره یا خیر مثلا به این شکل میشود: $login_user_favorites = [آرایه ای از کاربرانی که قبلا در لیست خود قرار داده]; $user_id = شناسه کاربری که در حال بازدید پروفایلش هستید; return in_array($user_id,$login_user_favorites); در کد بالا اگر شناسه کاربری که از پروفایلش بازدید میکنیم در لیست کاربران دلخواه کاربر لاگین شده موجود باشه true برمیگرده در غیراینصورت false برمیگرده. در مورد این هم که بدون رفرش باشه حتما باید ajax کار کنید
  4. معمولا برای اینکه آیتمی رو فعال یا غیرفعال کنن دو جا میشه اینکار رو انجام داد یکی در بخشی که خود آیتم ساخته شده از اونقسمت خیلی راحت میتونید یه فیلد وضعیت بذارید و فعال یا غیرفعال بودن رو انتخاب کنید تا موقع ذخیره اعمال بشه و یا در لیست مناطق که نمایش داده میشه میتونید مثلا فیلتر کنید و فقط مناطق تهران رو نمایش بدید و کنار هر منطقه یه چک باکس باشه که هر کدوم رو خواستید تیک بزنید و دو تا دکمه فعال و غیرفعال هم داشته باشید که روی هر کدوم کلیک شد مناطق انتخاب شده رو با ajax به api مورد نظر ارسال کنید و وضعیتش رو براساس کلیکی که روی دکمه فعال یا غیرفعال بوده آپدیت کنید. اگه توضیحات بیشتری نیاز داشتید بگید بیشتر راهنمایی کنم
  5. سلام منطق کار یکی هست و مهم نیست برای پست و مقاله بوده باشه روش کار یکیه از همونها میتونید الگو برداری کنید حالا جایی باز مشکلی داشتید میتونید مشکل رو مطرح کنید
  6. چون توی دیتابیس این فیلدها رو nullable گذاشتید توی شرط باید بگید اگر null نبود که میتونید از متد is_null استفاده کنید
  7. باید اکستنشن fileinfo رو در laragon فعال کنید برای فعالسازی مراحل زیر رو انجام بدید laragon control panel > php > extensions > fileinfo گزینه fileinfo رو کلیک کنید تا فعال بشه
  8. میتونید برای عکس و فیلم هر کدومش جداگانه یه فیلد بذارید و در بخش کاربری هم هر کدومش که مقدار داشت همون رو به کاربر نمایش بدید. از mime type هم میتونید استفاده کنید ولی از فیلد جدا استفاده کنید بهتره چون ممکنه یه زمان نیاز داشته باشید که خبر هم عکس و هم ویدئو داشته باشه
  9. بهتون خطا میده؟ یا مقدار ip خالی هست؟ اگر مقدارش رو با dd چک کنید ببینید چی نمایش میده
  10. برای ایونت onchange گفتید متد filter اجرا بشه بعد داخل خود متد filter دوباره نوشتید که وقتی onchange اجرا شد این قسمت رو باید حذف کنید و مستقیم خود مقدار رو بگیرید
  11. تغییر رمز عبور میتونه به این شکل باشه که اول یه فرم دارید که کاربر شماره موبایل رو وارد میکنه و بعد شما یک کد تایید برای کاربر ارسال میکنید و کاربر رو به یک صفحه جدید هدایت میکنید توی این صفحه یه فرم هست که کاربر کد ارسالی توی پیامک رو به همراه رمز جدید خودش وارد میکنه و بعد از ارسال فرم باید چک کنید کدی که کاربر وارد کرده با کدی که شما براش ارسال کرده بودید یکی هست یا خیر اگر درس بود براساس رمز جدیدی که وارد کرده در جدول کاربران رمز عبور کاربر مورد نظر رو بروزرسانی میکنید.
  12. فیلد registered_at براساس منطق و نیاز برنامه شما میتونه مقدار timestamp یا boolean بگیره هر کدوم رو که میخواید طبق همون فیلدش رو توی دیتابیس بسازید و در نهایت بعد از تکمیل ثبت نام مقداردهی میکنید. اما در مورد آپدیت فیلدها که گفته بودید مشکل دارید همه فیلدهای شما توی دیتابیس داخل یه جدول هستن؟ یا جداول مختلفی رو میخواید آپدیت کنید؟
  13. سلام کدهای کنترلر و view رو کامل قرار بدید چک کنیم توضیحاتتون خیلی کمک نمیکنه
  14. شما متد اسکوپ رو توی مودل User باید بنویسید از اسکوپ برای استفاده از کوئری Model جاری استفاده میکنن ولی کدتون رو توی مودل ActiveCode نوشتید و چون نتیجه درستی برنمیگرده شرطی که گذاشتید درست عمل نمیکنه و به روت token ریدایرکت میشه محل کدها رو تغییر بدید بعد کدتون رو تست کنید
  15. توی کدهاتون متد اسکوپ رو موقع استفاده مقادیر اشتباه بهش پاس دادید توی ورودی متد آبجکت user رو دارید ولی موقع پاس دادن اطلاعات بجای user فقظ phone رو بهش پاس دادید
  16. مشکل اصلی شما رو در تاپیک زیر راه حلش رو نوشتم بعد از ثبت نام هم خطاهای دیگه ای بعد از ثبت کد ارسالی برای کاربر دارید که اونهم مربوط به متد اسکوپ هست که ورودی متد رو باید اصلاح کنید.
  17. یکی از خطاهایی که در هنگام ایجاد سیسام ثبت نام در لاراول ممکن است با آن رو به رو شوید خطایی با پیغام زیر هست 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 هم متدهای خودتون رو پیاده سازی کنید و حالا اینقسمت میتونید بعد از ثبت نام کاربر رو بدون خطا به صفحه بعدی مورد نیازتون ریدایرکت کنید.
  18. متد لاگین رو دوبار نوشتین؟ توی کدهاتون متد login با دو ورودی مختلف هست کدوم رو الان استفاده میکنید؟ و در مورد خطایی که بالا اشاره کردید کلاس User رو چک کنید ببینید از کلاس Authenticatable ارث بری کرده؟ باید مادل یوزر از این کلاس ارث بری کنه اگر باز نتونستید حل کنید خواستید کدهاش رو برام زیپ کنید بفرستید روی سیستم خودم تست کنم
  19. پیاده سازی این موارد بستگی به بیزنس رول پروژه داره و مثلا فردا اگه نمیخواید موارد و محصولات دیگه ای به فروشگاه اضافه کنید که این شرایط رو نداشته باشن برای اینکه کوئریهای اضافه نداشته باشید میتونید به همون جدول محصولات یه گزینه برای جنسیت و یه گزینه برای رده سنی اضافه کنید که ساده ترین حالت هست و کارتون رو اوکی میکنه. ولی اگر چشم انداز پروژه در آینده متفاوت خواهد بود و موارد متفاوت دیگری هم خواهید داشت میتونید از سیستم فیلدهای اضافه استفاده کنید و انواع فیلدها رو ایجاد کنید و در هر محصول یا مجموعه ای که نیاز داشتید از فیلدهای مورد نظر استفاده کنید.
  20. شما همون روشی رو که گفتم انجام بدید کارتون درست پیش میره و مشکلی پیش نمیاد اول شماره موبایل رو تایید و کاربر رو ایجاد میکنید که گفتید مشکلی در اینقسمت ندارید بعد کاربر رو لاگین کنید و با یه میدلور چک کنید ببینید اگر مقدار register_at برای کاربر لاگین شده برابر با null بود کاربر رو به صفحه قوانین منتقل کنید تا ثبت نامش رو تکمیل کنه و در نهایت بعد از تکمیل ثبت نام مقدار register_at رو برابر تایم استمپ بذارید که این رو هم مقدارش رو از کلاس کربن به شکل Carbon::now میتونید دریافت کنید. اگر هم register_at مقدار داشت و کاربر ثبت نامش رو قبلا تکمیل کرده بود به صفحه اصلی هدایت میکنید این روند مشکل شما رو حل میکنه خیلی پیچیدگی خاصی نداره
  21. میتونید در دیتابیس توی جدول کاربران یه فیلد به اسم register_at اضافه کنید که پیشفرض null قرار بدید بعد زمانی که کاربر مراحل ثبت نام رو تموم کرد مقدار register_at رو برابر با تایم استمپ اون تاریخ قرار بدید که مشخص بشه این کاربر در این تاریخ ثبت نامش تموم شده بعد هر بار کاربری لاگین میکنه چک میکنید که اگر مقدار register_at خالی نبود یعنی کاربر ثبت نامش تموم شده و مجاز به دیدن صفحه home یا هر صفحه ای که دوست دارید هست
  22. متد flush هر چیزی که داخل سشن هست رو کلا حذف میکنه برای اینکه مقداری رو داخل سشن قرار بدید که هنگام استفاده از request باید از متد put استفاده کنید که به این شکل هست: $request->session()->put('auth.user_id', $user->id); بعد هر جایی خواستید این مقدار رو دریافت کنید با متد get به شکل زیر دریافت میکنید $request->session()->get('auth.user_id'); ولی در کل در مورد پروژه ای که انجام بدید بهتره روش کارتون رو تغییر بدید چون اینطوری از سشن که استفاده میکنید اگر کاربری کارش رو نیمه کاره بذاره و بعد یه مدت بیاد ادامه بده بخاطر اینکه اطلاعات داخل سشن منقضی میشن برای ادامه کار مشکل میخورید و مجدد کار زیادی برای اعتبار سنجی دوباره شماره موبایل و چک کردن اینکه کاربر از قبل بوده یا خیر انجام بدید. به نظرم بهتر هست بعد از اینکه کاربر شماره موبایل رو تایید کرد و ثبت نام شد بطور اتوماتیک لاگینش رو هم انجام بدید و مراحل بعدی تکمیل فرمها رو انجام بدید و تا زمانی که مرحله ای رو تکمیل نکرده اجازه رفتن به مرحله بعد رو ندید. اینطوری دیگه نیازی به سشن ندارید و بعد از لاگین از طریق هلپر فانکشن auth به همه اطلاعات کاربر دسترسی دارید.
  23. شما با کلید auth.user_id میخواید شناسه کابر رو بگیرید ولی جایی این رو set نکردید زمانی که کاربر رو با متد create ایجاد میکنید بعدش با همون کلید auth.user_id شناسه کاربر رو توی سشن set کنید تا بعدش بتونید با متد get دریافتش کنید. البته اگه بعد ثبت نام کاربر بطور خودکار توی سایت لاگین میشد به این session نیازی نبود و براحتی از طریق هلپر فانکشن auth به اطلاعات کاربر دسترسی داشتین
  24. خب پس مشکل از همون قسمت هست باید ببینید جایی که session رو set میکنید چه ایرادی داره چون اصلا ست نمیشه توی کدهایی که گذاشتید قسمت ست شدن session رو ندیدم
  25. مقدار داخل session رو با dd تست کنید ببینید اصلا بهتون خروجی میده؟
×
×
  • جدید...