هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست
Paradox
-
تعداد ارسال ها
112 -
تاریخ عضویت
-
آخرین بازدید
-
Days Won
1
پست ارسال شده توسط Paradox
-
-
در در ۱۴۰۱/۱۲/۹ در 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
-
در 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')); }
-
نه نمیخام جدول تخفیف برای هر محصول ایجاد کنم ، میخوام کدهای تخفیف رو برای محصول مشخص کنم
میخام به ازای هر کاربرانی که معرفی میشه ازسمت یک شخص بهش کد تخفیف تعلق بگیره به این شکل
اگه 5 نفر استفاده کردن 50 درصد تخفیف اگه 10 نفر 100 درصد اعمال بشه برای خرید
مثلا من فقط یه بخش دارم تو سایت که کاربران باید اشتراک تهیه کنن تا بتونن استفاده کنن حالا میخام اگه کد تخفیف داشتن بتونن هزینه کمتر بدن با استفاده از کد تخفیف یا اگه مثلا 10 نفر رو معرفی کرد به ازای اون تخفیف بتونه رایگان از اون اشتراک استفاده کنه
-
جدول به این شکل میشه ؟
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']); });
-
از کنترلر باید مدیریت بشه درسته ؟
تو این متد که فرم رو دارم
اینجا باید ایدی شهر رو بگیرم و بگم استاتوس رو تو جدول منطقه غیرفعال کنه ؟
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 ]); } }
-
اره اول به این شکل گفتن الان ولی تغییر کرد !! بابت هر کاربری که از کد تخفیف استفاده میکنه درصدها متفاوت باشه ...
اگه 5 نفر استفاده کردن 50 درصد تخفیف اگه 10 نفر 100 درصد
یا به این شکل
یک بار استفاده شد بگه 20 درصد دوبار 40 و 5 بار استفاده کردم 100 درصد ...
پس باید این شرایط باید جدول جدا درست کرد
و اینکه درصدها رو بشه تغییر دادم باید کوئری زد فقط درسته ؟
-
در در ۱۴۰۱/۱۱/۲۶ در 00:17، Paradox گفته است :موقع dd به بخش رو false میاره
Illuminate\Database\Eloquent\Collection {#1528 ▼ // app\Http\Controllers\frontend\SearchController.php:62 #items: array:1 [▶] #escapeWhenCastingToString: false این بخش فالس هست }
این بخش وقتی dd میگیرم اطلاعات همون کاربری که میخام نمایش میده ولی یه ارور هم دارم دلیلش چیه ؟
-
function manage_region_status(status) { $.ajax({ type:'POST', url:'/admin.send.locations', data: { status // _token: '{{csrf_token()}}' "_token": "{{ csrf_token() }}", }, }); }
اینجا مشکل دارم
-
یه سوال ایا نیازه جدول جدا برای فیلتر ایجاد بشه ؟
من میخام فیلترهایی که برای کاربران قابل نمایش هست از پنل ادمین بشه مدیریتش کنه ( مثلا بتونم سن رو غیرفعال کنم تا فیلتر بر اساس موارد دیگه باشه و سن رو نشون نده موقع فیلتر کردن)
-
موقع dd به بخش رو false میاره
Illuminate\Database\Eloquent\Collection {#1528 ▼ // app\Http\Controllers\frontend\SearchController.php:62 #items: array:1 [▶] #escapeWhenCastingToString: false این بخش فالس هست }
-
من تو دیتابیس دیفالت رو یک گذاشتم پس اینجا به جای 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) { // فرم رو اینجا ارسال میکنید }
-
این اشتباهه مهندس؟
-
من با سوییچ برای اینکه تو ویو نشون بده چنبار کاربر از کد استفاده کرد میزان تخفیف رو نوشتم
فقط یه سوال آیا این روشی که انجام میدم درسته ؟
نیازی نیست یه جدول جدا برای تخفیف ایجاد کنم درکل به جای اینکه تو جدول یوزر باشه؟
اگه یه جدول جداهم بزارم باز میشه کاری کرد موقع ثبت نام هر کاربر کد تخفیف رندوم براش ثبت بشه ؟
-
میزان درصدی که بدست میاد بابت هر ثبت نامی که از کد معرف استفاده میکنه رو به چه شکل میشه محاسبه کرد ؟
مثلا من یک بار استفاده کردم بگه 20 درصد دوبار 40 و 5 بار استفاده کردم 100 درصد
-
درست شد مهندس ممنون به این شکل نوشتم
$count = User::where('reagent_code', Auth::user()->invite_code)->count();
-
در 16 ساعت قبل، saber گفته است :دیتابیستون رو چک کنید ببینید اطلاعات چطوری ذخیره شدن احتمال داره اطلاعات درست توی دیتابیستون ذخیره نشده
زمانی که هر کاربر ثبت نام میکنه یک invite_code براش ثبت میشه تو دیتابیس
وقتی هم کاربر جدید invite_code کاربر دیگه رو وارد میکنه به درستی تو دیتابیس ذخیره میشه
اتفاقی که داره میفته به ازای هر ثبت نامی که انجام میشه یک invite_code که ثبت میشه برای تمامی کاربران رو جمع میکنه و تو پروفایل همه کاربران همین جمع کل رو نمایش میده
-
اینکه تعداد 2 نوشته یکیش برای ثبت نام خودم یک تعداد ثبت شد
یعنی وقتی هر کاربر تو سایت ثبت نام میکنه تعداد 1 رو براش در نظر میگیره؟ باید قبل اینکه کسی کد وارد کرد 0 بزنه ولی چرا یک میزنه ؟
-
در 18 ساعت قبل، saber گفته است :برای اینکه status رو توی response ندارید من اون رو برای تست نوشتم و شما باید مقدارش رو از وضعیت مناطق بگیرید و در response همون مقدار رو دریافت و براساس اون دکمه ها رو مخفی یا نمایش بدید
توسط جیکوئری باز باید اینکارو کرد ؟
چون نمیدونم چطوری اینکارو کنم
-
در 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); }
-
در 6 ساعت قبل، saber گفته است :باید از where استفاده کنید و count رو بگیرید
$count = User::where('reagent_code', $user->invite_code)->count();
ممنون مهندس
من اینکارو که کردم دفعه اول که از کد دعوت استفاده کردم عدد 2 رو نمایش داد تو خروجی
سه بار دیگه ثبت نام کردم با کد دعوت باز همون 2 رو که دفعه اول نمایش میداد رو نشون میده
-
مشکل از این نیست که نمیگم get کن؟
به این شکل مینویسم درسته؟
return view('profile' , compact(['users' , 'provinces' , 'users_filter']));
-
در 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 میگیرم کل کاربران نمایش میده ! هوف
-
در 33 دقیقه قبل، saber گفته است :با همون ستونها میتونید کار کنید یکی برای معرفی افراد جدید هست دومی هم که برای این هست که مشخص بشه کاربر توسط چه کسی معرفی شده و طبق همون ستون reagent_code باید تعداد افرادی رو که معرفی کرده پیدا کنید
ممنونم پس با همین دو فیلدی که دارم میتونم انجام بدم
از تابع count باید استفاده کرد؟
برای نمایش تمام کاربران خب میگیم مدل رو count کنه
برای یک ایتم چطوری میشه تعداد رو محاسبه کرد که چند نفر استفاده کردن؟
-
ممنونم مهندس بازهم تو 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>
مشکل در غیرفعال کردن آیتم
در رفع مشکلات و سوالات عمومی لاراول Laravel
ارسال شده در · Report reply
سلام متاسفانه موفق نشدم این کد ایجکس رو درست کنم
به این شکل نوشتم
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');
توی کنترلر که دیگه نیازی نداره کوئری باشه درسته ؟
این هم بلید
اصلا درخواست ارسال نمیشه به دیتابیس