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

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

saber

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

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

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

  • Days Won

    77

پست ارسال شده توسط saber


  1. الان این مشکل شما فک نمیکنم ارتباطی به روتها داشته باشه باید ببینیم رجستر رو چطوری پیاده سازی کردید توی کنترلر RegisterController متد create رو چک کنید dd کنید ببینید چه اطلاعاتی ارسال میشه. اون کدهای api.php هم برای رفع مشکل دستور artisan هست نه برای ثبت نام.


  2. علاوه بر مواردی که استاد طالبی گفتن مشکل شما بخاطر نوع route هایی هست که ساختید روتهای شما از نوع Closures هستن و php نمیتونه اونها رو serialize کنه برای رفع مشکل

    روتها رو در فایل web.php از طریق controller های مربوطه بسازید مثلا برای ادمین اگر کنترلر شما AdminController باشه به شکل زیر بنویسید

    Route::get('/admin', 'AdminController@index')->name('admin');

    و همینطور چون auth لاراول رو اجرا کردید بطور خودکار در فایل api.php یه سری کد مشابه کدهای زیر ایجاد شده

    Route::middleware('auth:api')->get('/user', function (Request $request) {
        return $request->user();
    });

    که اگر لازم ندارید همه کدهای api.php رو به حالت کامنت دربیارید تا غیرفعال بشن و یا از طریق کنترلر route رو ایجاد کنید اگر UserController دارید کد بالا رو به شکل زیر تغییر بدید

    Route::middleware('auth:api')->get('/user', 'UserController@AuthRouteAPI');

    و در فایل UserController متد زیر رو وارد کنید

    public function AuthRouteAPI(Request $request){
        return $request->user();
     }

    بعد از انجام این کارها میتونید دستور php artisan route:cache رو اجرا کنید

    • لایک 1

  3. روی لوکال باز نمیشه اینو باید بعد از اینکه به هاست منتقل کردید فعال کنید میتونید توی میدلور یه شرط بذارید و چک کنید اگر حالت production بود کدهای داخل متد handle اجرا بشن

    if(config('app.env') == 'production')

    برای نام دامین هم در لوکال باید دامین مجازی یا همون VirtualHost درست کنید

    • لایک 1

  4. میتونید یه میدلور مثلا به اسم CheckWww ایجاد کنید و متد اون رو به شکل زیر بنویسید و در نهایت این میدلور رو روی تمامی route ها اعمال کنید

        public function handle($request, Closure $next)
        {
            $host = $request->header('host');
            if (substr($host, 0, 4) != 'www.') {
                $request->headers->set('host', 'www.' . $host);
                return Redirect::to($request->path(), 301);
            }
            return $next($request);
        }

     

    • لایک 1

  5. چیزی که از خطا مشخص هست فیلد name رو بدون مقدار به دیتابیس ارسال میکنید و چون name رو nullable قرار ندادید ارور میده

    اگر فیلد name ضروری هست که قاعدتا باید ضروری باشه قبل از ارسال به دیتابیس اعتبار سنجی کنید که حتما مقدار داشته باشه و خالی ارسال نشه

    • لایک 2

  6. نیازی به استفاده از پکیج خاصی نیست اگر میخواید توی دیتابیس ذخیره کنید و از دیتابیس اطلاعاتش رو بگیرید یک روشی که میتونید اینکار رو انجام بدید این هست که

    در مدیریت سایت یه بخش تنظیمات ایجاد کنید که جدول دیتابیسش دو تا ستون key و value داشته باشه و تنظیمات بخشهای مختلف سایت رو از جمله همین شبکه های اجتماعی رو

    داخلش ذخیره کنید(مثلا برای تلگرام key میشه telegram و value هم میشه نام کانال یا هر چیزی که میخواید) و براحتی در سایت هم اطلاعات رو از دیتابیس دریافت و نمایش بدید.

    • لایک 2
×
×
  • جدید...