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

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

Paradox

کاربر
  • تعداد ارسال ها

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

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

  • Days Won

    1

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


  1. سلام متاسفانه موفق نشدم این کد ایجکس رو درست کنم

    به این شکل نوشتم

        function manage_region_status(status)
        {
    
            let city = $('#city-dropdown').val();
                $.ajax({
                type:'POST',
                url:"{{ route('disable-regions') }}"
                data: {
                    _token: "{{ csrf_token() }}",
                    city_id : city
                },
                success: function(data) {
                    console.log(data);
                },
                error: function(error) {
                    console.log(error);
                }
            });
            // let city = $('#city-dropdown').val();
            // $.ajax({
            //     type:'POST',
            //     url:"{{ route('admin.send.locations') }}"
            //     data: {
            //     "_token": "{{ csrf_token() }}",
            //     status: status,
            //     city: city
            //     },
            // });
        }

     

    روت 

        Route::post('/disable-regions' , [AdminController::class , 'disableRegions'])->name('disable-regions');

     

    توی کنترلر که دیگه نیازی نداره کوئری باشه درسته ؟

     

    این هم بلید

    <button type="button" style="display: none" id="enable_region"  class="btn btn-info">فعال</button>
     <button type="button" style="display: none" id="disable_region" class="btn btn-danger">غیرفعال</button>

    اصلا درخواست ارسال نمیشه به دیتابیس


  2. در در ۱۴۰۱/۱۲/۹ در 10:32، Azadeh گفته است :

    سلام وقتتون بخیر

    من تمام مراحل نصب filemanager  رو انجام دادم اما خروجی فایل منیجر رو نمیاره

    سلام

    تو فایل .env 

    APP_URL به شکل زیر باید باشه 

    APP_URL=http://localhost:8000

    و دستورات زیر تو ترمینال بزنید 

    php artisan config:cache
    
    php artisan config:clear
    
    php artisan route:clear
    
    php artisan route:cache

     


  3. در 12 ساعت قبل، saber گفته است :

    اینقسمت باید id شهری رو که انتخاب شده از طریق جیکوئری دریافت کنید و با نام city به کنترلر ارسال کنید چون توی کنترلر دیدم با نام city دریافت میکنید به شکل زیر

    
    function manage_region_status(status)
    {
      let city = $('#city_input_id_add_here').val();
      $.ajax({
        type:'POST',
        url:"{{ route('your route name') }}"
        data: {
        "_token": "{{ csrf_token() }}",
        status: status,
        city: city
    
      },
    
    });
    }

    توی کنترلر یه فیلد با مقدار all هم دیدم دریافت میکنید اون رو هم باید مقدارش رو از فرم بگیرید و توی ایجکس ارسال کنید

    all رو باید تو این متد بالا بزارم ؟ به این شکل تعریف کنم

                        $('#region-dropdown').html('<option value="all">تمام مناطق</option>');
    

    یا این شکل؟ ایجکس بلد نیستم 

            let city = $('all').val();

     

    این کدهای کنترلرم اشتباهه ؟ 

        public function submitLocation(Request $request , Region $region)
        {
     
            if($request->region[0] == 'all')
            {
                $region = Region::where('city_id', $request->city)->get();
    
                if ($region->status == 1) {
                    $region->status = 0;
                } else {
                    $region->status = 1;
                }
        
                $region->save();
    
                // $region->status = 0;
                // $region->save();
    
                // $region = Region::update([
                //     'status' => 0
                // ]);
    
                // DB::table('regions')
                // ->where('id','=',$region)
                // ->update([
                //     'status'=>'0',
                // ]);
            }
            
                // if ($request->region[0] == 'all') {
    
                //     $region = Region::where('city_id', $request->city)->get();
                //     // auth()->user()->regions()->sync($region);
    
                //     $region = Region::updated([
                //         'status' => 0
                //     ]);
    
                // } else {
    
                //     $region = Region::findOrFail($request->region);
                //     // auth()->user()->regions()->sync($region);
                //     $region = Region::updated([
                //         'status' => 1
                //     ]);
                // }
    
    
            return redirect(route('locations'));
            
        }

     


  4. نه نمیخام جدول تخفیف برای هر محصول ایجاد کنم ، میخوام کدهای تخفیف رو برای محصول مشخص کنم

    میخام به ازای هر کاربرانی که معرفی میشه ازسمت یک شخص بهش کد تخفیف تعلق بگیره به این شکل 

    اگه 5 نفر استفاده کردن 50 درصد تخفیف اگه 10 نفر 100 درصد اعمال بشه برای خرید 

    مثلا من فقط یه بخش دارم تو سایت که کاربران باید اشتراک تهیه کنن تا بتونن استفاده کنن حالا میخام اگه کد تخفیف داشتن بتونن هزینه کمتر بدن با استفاده از کد تخفیف یا اگه مثلا 10 نفر رو معرفی کرد به ازای اون تخفیف بتونه رایگان از اون اشتراک استفاده کنه

     


  5. جدول به این شکل میشه ؟

            Schema::create('discounts', function (Blueprint $table) {
                $table->id();
                $table->foreignId('user_id')->constrained()->onDelete('cascade');
                $table->string('code');
                $table->integer('percent');
                $table->boolean('status')->default(0);
                $table->timestamps();
            });

    حالا من برای مثلا جدول محصول بخوام باید این جدول رو هم داشته باشم ؟ یا مثل یوزر فقط یه فیلد product_id بزارم ؟

         Schema::create('discount_product', function (Blueprint $table) {
    
                $table->foreignId('product_id')->constrained()->onDelete('cascade');
    
                $table->foreignId('discount_id')->constrained()->onDelete('cascade');
    
                $table->primary(['discount_id' , 'product_id']);
            });

     


  6. از کنترلر باید مدیریت بشه درسته ؟

    تو این متد که فرم رو دارم

    اینجا باید ایدی شهر رو بگیرم و بگم استاتوس رو تو جدول منطقه غیرفعال کنه ؟

        public function submitLocation(Request $request , Region $region)
        {
           
            if($request->region[0] == 'all')
            {
                $region = Region::where('city_id', $request->city)->get();
                $region = Region::updated([
                    'status' => 0
                ]);
            }
    }

     


  7. اره اول به این شکل گفتن الان ولی تغییر کرد !! بابت هر کاربری که از کد تخفیف استفاده میکنه درصدها متفاوت باشه ...

    اگه 5 نفر استفاده کردن 50 درصد تخفیف اگه 10 نفر 100 درصد 

    یا به این شکل 

    یک بار استفاده شد بگه 20 درصد دوبار 40 و  5 بار استفاده کردم 100 درصد ...

    پس باید این شرایط باید جدول جدا درست کرد

    و اینکه درصدها رو بشه تغییر دادم باید کوئری زد فقط درسته ؟

     


  8. در در ۱۴۰۱/۱۱/۲۶ در 00:17، Paradox گفته است :

     موقع dd به بخش رو false میاره

    
    Illuminate\Database\Eloquent\Collection {#1528 ▼ // app\Http\Controllers\frontend\SearchController.php:62
      #items: array:1 [▶]
      #escapeWhenCastingToString: false  این بخش فالس هست
    }

     

    این بخش وقتی dd میگیرم اطلاعات همون کاربری که میخام نمایش میده ولی یه ارور هم دارم دلیلش چیه ؟


  9. یه سوال ایا نیازه جدول جدا برای فیلتر ایجاد بشه ؟

    من میخام فیلترهایی که برای کاربران قابل نمایش هست از پنل ادمین بشه مدیریتش کنه ( مثلا بتونم سن رو غیرفعال کنم تا فیلتر بر اساس موارد دیگه باشه و سن رو نشون نده موقع فیلتر کردن)

     


  10. من تو دیتابیس دیفالت رو یک گذاشتم پس اینجا به جای 0 باید یک رو قرار بدم درسته ؟

    در در ۱۴۰۱/۱۱/۲۳ در 21:00، saber گفته است :

    چون همه مناطق شما در یه وضعیت هستن و فعال یا غیرفعال هستن توی کنترلر که در متد fetchRegion مناطق رو دریافت میکنید status رو اونجا چک کنید و توی response که برگشت میدید یه فیلد با اسم status قرار بدید و مقدارش رو برابر با وضعیت مناطق دریافتی قرار بدید بعدشم که در بخش جیکوئری با پاسخی که ایجکس دریافت کرده دکمه ها رو مدیریت کنید. مشابه کد زیر میتونید status رو پاس بدید

     

    
       public function fetchRegion(Request $request)
        {
             $data['regions'] = Region::where("city_id", $request->city_id)->get();
              $data['status'] = $data['regions'][0]->status; // دقیقا مطابق با فیلدی که در دیتابیس هست مقدار رو دریافت کنید
            return response()->json($data);
        }

     

    و اینکه تو این متد تو جی اس من درخواست رو نتونستم ارسال کنم این بخش نمیدونم دقیقا 

        function manage_region_status(status)
        {
            // فرم رو اینجا ارسال میکنید
        }

     


  11. من با سوییچ برای اینکه تو ویو نشون بده چنبار کاربر از کد استفاده کرد میزان تخفیف رو نوشتم

    فقط یه سوال آیا این روشی که انجام میدم درسته ؟

    نیازی نیست یه جدول جدا برای تخفیف ایجاد کنم درکل به جای اینکه تو جدول یوزر باشه؟

    اگه یه جدول جداهم بزارم باز میشه کاری کرد موقع ثبت نام هر کاربر کد تخفیف رندوم براش ثبت بشه ؟


  12. در 16 ساعت قبل، saber گفته است :

    دیتابیستون رو چک کنید ببینید اطلاعات چطوری ذخیره شدن احتمال داره اطلاعات درست توی دیتابیستون ذخیره نشده

    زمانی که هر کاربر ثبت نام میکنه یک invite_code براش ثبت میشه تو دیتابیس

    وقتی هم کاربر جدید invite_code کاربر دیگه رو وارد میکنه به درستی تو دیتابیس ذخیره میشه

    اتفاقی که داره میفته به ازای هر ثبت نامی که انجام میشه یک invite_code که ثبت میشه برای تمامی کاربران رو جمع میکنه و تو پروفایل همه کاربران همین جمع کل رو نمایش میده 


  13. در 18 ساعت قبل، saber گفته است :

    برای اینکه status رو توی response ندارید من اون رو برای تست نوشتم و شما باید مقدارش رو از وضعیت مناطق بگیرید و در response همون مقدار رو دریافت و براساس اون دکمه ها رو مخفی یا نمایش بدید

    توسط جیکوئری باز باید اینکارو کرد ؟

    چون نمیدونم چطوری اینکارو کنم


  14. در 6 ساعت قبل، saber گفته است :

    بین شهر و منطقه رابطه چند به چند دارید؟ و بین منطقه و کاربران رابطه یک به چند؟

    در کل برای پروژم من میخام هر کاربر بتونه بعدا استان و شهر و منطقه خودش رو تغییر بده 

    و هر کاربر بتونه یک یا چند منطقه رو انتخاب کنه 

    این روابط اشتباهه؟

     

    مدل user

        public function region()
        {
            return $this->belongsTo(Region::class);
            // return $this->belongsToMany(Region::class);
        }

    مدل استان

      public function cities()
        {
            return $this->hasMany(City::class);
        }

    مدل شهر

        public function provinces()
        {
            return $this->belongsToMany(Province::class);
        }
        
        public function regions()
        {
            return $this->hasMany(Region::class);
        }

    مدل منطقه

        public function city()
        {
            return $this->belongsTo(City::class);
        }
    
        public function users()
        {
            return $this->hasMany(User::class);
            // return $this->belongsToMany(User::class);
        }

     


  15. در 6 ساعت قبل، saber گفته است :

    باید از where استفاده کنید و count رو بگیرید

    
    $count = User::where('reagent_code', $user->invite_code)->count();

     

    ممنون مهندس 

    من اینکارو که کردم دفعه اول که از کد دعوت استفاده کردم عدد 2 رو نمایش داد تو خروجی

    سه بار دیگه ثبت نام کردم با کد دعوت باز همون 2 رو که دفعه اول نمایش میداد رو نشون میده 

     


  16. در 23 دقیقه قبل، saber گفته است :

    شرطهایی رو که توی جستجو گذاشتید از طریق فرم ارسال نمیکنید؟ توی کنترلر مرحله به مرحله بعد از هر شرط یه dd بگیرید ببینید اشکال کارتون کجا هست اگه شرطها برقرار باشن و روابط رو درست پیاده سازی کنید خروجی میده

    چرا دقیقا داخل فرم قرارشون دادم همه رو 

    تنها تفاوتی که تو روابط هست این بخش تو مدل user  هست 

        public function region()
        {
            // return $this->belongsTo(Region::class);
            return $this->belongsToMany(Region::class);
        }

    وقتی belongsTo میزارم ارور میده 

    Call to undefined method Illuminate\Database\Eloquent\Relations\BelongsTo::sync()
    

    که من 

    belongsToMany

    گذاشته بودم کار میکنه

    دونه به دونه dd میگیرم بعد هر  شرط باز هم نمایش میده کاربر مورد نظرو

    ولی وقتی compact میگیرم کل کاربران نمایش میده ! هوف

     


  17. در 33 دقیقه قبل، saber گفته است :

    با همون ستونها میتونید کار کنید یکی برای معرفی افراد جدید هست دومی هم که برای این هست که مشخص بشه کاربر توسط چه کسی معرفی شده و طبق همون ستون reagent_code باید تعداد افرادی رو که معرفی کرده پیدا کنید

    ممنونم پس با همین دو فیلدی که دارم میتونم انجام بدم 

    از تابع count باید استفاده کرد؟

    برای نمایش تمام کاربران خب میگیم مدل رو count کنه 

    برای یک ایتم چطوری میشه تعداد رو محاسبه کرد که چند نفر استفاده کردن؟


  18. ممنونم مهندس بازهم تو dd درست نمایش میده ولی وقتی تو compact میزارم کل کاربران سایت رو نمایش میده

    این تگ فرم و دکمه من مشکلی نداره ؟ 

                                    <form class="row g-3" action="{{ route('search') }}">
                                       
                                        <div class="col-12 text-center mt-5 mb-4">
                                          <button class="btn btn-orange">جستجو</button>
                                        </div>
    
                                      </form>
           

     

×
×
  • جدید...