هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست
Paradox
-
تعداد ارسال ها
112 -
تاریخ عضویت
-
آخرین بازدید
-
Days Won
1
پست ارسال شده توسط Paradox
-
-
سلام وقت بخیر
من میخام کاربران مورد علاقه به سایت اضافه کنم باید از روش morph استفاده کرد درسته ؟
من هرچی سرچ زدم لایک و علاقه مندی برای پست و مقالات بود
من میخام برای کاربران باشه یعنی از بین کاربران اونایی که مورد علاقه هستند لایک و دیسلایک اضافه کنم
این لینک هایی که گذاشتم ایا مثل این انجام بدم و جدول post در نظر نگیرم میتونم به جواب برسم یا متفاوت هست ؟
لینک
و این لینک -
مشکلم حل شد
- 1
-
اگه با ایدی کاربر 1 وارد بشم تمام منطقه ها مثلا منطقه 1 نمایش میده و اگر با ایدی کاربر 2 وارد سایت بشم تمام منطقه های کابران رو مثلا منطقه 3 چاپ میکنه که کاربر موقع ثبت نام انتخاب کرد -
برای منطقه که به این شکل نوشتم
auth()->user()->regions()->first()->name
برای تمام کاربران منطقه ست میشه و بر اساس ایدی کاربران نیست
-
برای نمایش منطقه به این شکل نوشتم تو بلید
auth()->user()->regions()->first()->name
نمایش میده حالا اگه چند منطقه ای که کاربر انتخاب کرد رو بخوام نمایش بدم چیکار باید کرد ؟
برای نمایش شهر تو این حالت که رابطه چند به چند هست چطوری باید اسم شهر رو چاپ کنم؟
فقط تونستم ایدی شهر رو چاپ کنم{{ auth()->user()->regions()->first()->city_id }}
-
دو تا فیلد تعریف کردم
image
video
دیفالت رو nullabel گذاشتم حالا هر کدوم خواستم اپلود میکنم
فقط نمیدونم تو بلید به چه شکل شرط بزارم
@if (اینجا نمیدونم چی بزارم) <img src="{{ $news->image }}" alt="" class="img-fluid"> @else <video width="500" controls preload> <source src="{{ $news->video }}" type="video/mp4"> </video> @endif
تو کنترلر به این شکل نوشتم ایراد داره ؟دیتا ثبت شد و اکیه فقط میخام بدونم مشکلی نداشته باشه
auth()->user()->news()->create($request->all());
یا به این شکل بنویسم ؟چون ویدئو هم هست نمیدونم به این روش چطوری بنویسم
if($request->hasFile('image')) { $file = $request->file('image'); $ext = $file->getClientOriginalExtension(); $file_name = auth()->user()->id . '_' . time() . '.' . $ext; $file->storeAs('/', $file_name, 'files'); $data['image'] = $file_name; } auth()->user()->update($data);
-
در در ۱۴۰۱/۱۰/۱۳ در 00:27، saber گفته است :میتونید برای عکس و فیلم هر کدومش جداگانه یه فیلد بذارید و در بخش کاربری هم هر کدومش که مقدار داشت همون رو به کاربر نمایش بدید.
از mime type هم میتونید استفاده کنید ولی از فیلد جدا استفاده کنید بهتره چون ممکنه یه زمان نیاز داشته باشید که خبر هم عکس و هم ویدئو داشته باشه
ممنونم اگر برای هر کدوم فیلد جدا بزارم تو بخش کاربری چطور میتونم شرط بزارم اگه عکس بود عکس نمایش بده و اگر ویدئو بود ، ویدئو ؟
-
سلام من میخام بر اساس mime type اطلاعات فایل تو دیتابیس ثبت کنم
که اگر عکس بود عکس اپلود بشه و اگر ویدئو بود ویدئو اپلود بشه
به شکل زیر نوشتم$request->validate([ 'name' => 'required', 'slug' => 'unique:counselings', 'status' => '', 'description' => 'required', // 'file' => ['required','mimetypes:video/mp4,image/jpeg,image/png,image/gif,audio/mp3,audio/mpeg'], 'file' =>['mimes:jpeg,png,mp4','mimetypes:image/jpeg,image/png,video/mp4,video/avi,video/mpeg'], ]); if($request->hasFile('file')) { $files = $request->file('file'); $ext = $files->getClientMimeType(); $file_name = auth()->user()->id . '_' . time() . '.' . $ext; $files->storeAs('/', $file_name, 'public'); $data['file'] = $file_name; }
اروری که میگیرم
file پسوند و نوع فایل باید: jpeg, png, mp۴ باشد file پسوند و نوع فایل باید: image/jpeg, image/png, video/mp۴, video/avi, video/mpeg باشد
میخام بعدا تو بلید اگر عکس بود عکس نمایش بده
اگر ویدئو بود ویدئو برای کاربر نمایش بده
-
سلام وقت بخیر
موقع ثبت نام کاربر ازش میخام استان و شهر و منطقه وارد کنه که هر کاربر هم بتونه چند منطقه یا یک منطقه رو انتخاب کنه
یا بعدا بتونه استان و شهر و منطقه رو تغییر بده که اینکارو انجام دادم فقط نمیدونم درسته یا نه
رابطه چند به چند ایجاد کردمحالا میخام بعد از ثبت اطالاعات ، شهر و منطقه کاربر رو تو پروفایلش نمایش بدم
برای نمایش منطقه به این شکل کوئری زدم که dd گرفتم درست نمایش میده$regions = auth()->user()->regions()->first();
حالا نمیدونم چطوری تو بلید خروجی بگیرم که اسم منطقه ها یا یک منطقه رو نمایش بده
{{ auth()->user()->region_id }}
اینجوری که چیزی نشون نمیده
و اینکه میخام شهر رو هم نمایش بدم تو پروفایل ولی نمیدونم به چه صورت اینکارو انجام بدم
چون رابطه چند به چند بود چطوری میتونم مشخص کنم که هر کابر چه شهری انتخاب کرده ؟به این شکل مینویسم که اصلا city_id پیدا نمیکنه
$cities = City::find($user->regions->city_id);
مدل استان
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->belongsToMany(City::class); } public function users() { return $this->belongsToMany(User::class); }
مدل یوزر
public function regions() { return $this->belongsToMany(Region::class); }
-
مشکلم حل شد ممنون
-
سلام من موفق نمیشم ip ثبت کنم تو دیتابیس
تو fiilable هم گذاشتم نمیدونم مشکل کجاستfunction authenticated(Request $request, $user) { $user->update([ 'last_login_at' => Carbon::now()->toDateTimeString(), 'last_login_ip' => $request->ip(), ]); return $this->loggendin($request , $user); }
-
سلام شب بخیر
من میخام یه بخش از سایتم که مثلا مربوط به خبر هست
و فیلدهای جدولم شامل
title
description
file
حالا میخام تو پنل ادمین اگه عکس آپلود کردم تو بلید عکس نمایش بده
اگه ویدئو آپلود کردم تو بلید ویدئو نمایش بده
برای این باید از mime type استفاده کرد؟
به چه شکل باید استفاده کنم؟ باید فیلد جدید بزارم تو دیتابیس برای type ؟؟
یا راه حل دیگه ای اگه هست ممنون میشم راهنمایی کنید
چطوری میتونم تو پنل یا تو بلیدی که کاربر میبینه کاری کنم اگه ویدئو آپلود کردم نمایش بده یا اگه عکس اپلود کردم عکس نمایش بده -
لطفا راهنمایی کنید چیکار کنم
-
تو مدل user به این شکل نوشتم
public function isCompleted() { return $this->register_at == 1; }
این روش هم درسته؟
و اینکه روت rule دیگه نباید میدلور auth براش بزارم درسته ؟
-
تو مطلب قبلی فرمودید مقدار register_at برابر با تایم استمپ به این شکل منظورتونه؟
Auth::user()->register_at = \Carbon\Carbon::now();
من اینو کجا باید بزارم ؟ و چک کنم؟
-
سلام وقت بخیر
من میخام ثبت نام چندمرحله ای داشته باشم
به این صورت که اول کاربر با شماره موبایل ثبت نام میکنه و احراز هویت میشه که تا اینجا اکیه و هدایت میشه به صفحه home
بعدش میخام یک سری فیلد دیگه رو پر کنه اگه اطلاعات کامل پر شد کاربر بتونه روت home رو ببینه
یه فیلد تو دیتابیس به این شکل ایجاد کردم
$table->boolean('register_at')->nullable()->default(0);
یک میدلور هم ایجاد کردم میخام اگه اطلاعات تکمیل شد کاربر روت home ببینه
اگر نشد هدایت بشه به روت rule و اطلاعات رو به ترتیب پر کنه
public function handle(Request $request, Closure $next) { if($request->user()->isCompleted()) { return $next($request); } return redirect('/rule'); }
تو مدل user هم به این شکل نوشتم اینجا چطوری باید چک کنم کاربر اطلاعاتش تکمیل شد؟
public function isCompleted() { return $this->is_completed; }
-
در 3 ساعت قبل، smkou گفته است :سلام وقت بخیر.
آموزش احراز هویت پیامکی با موبایل در لاراول رو سرچ کنی سایت 7learn آموزشش رو قرار داده، شاید api هم وجود داشته باشه اما من تاحالا تست نکردم بخاطر همین بیشتر نمیتونم راهنمایی کنم.
دیدم اونو ولی متوجه نمیشم
-
سلام شب بخیر
من میخام فراموشی رمز عبور با شماره موبایل انجام بدم اموزشی هست که بتونم طبق اون پیش برم ؟
به جای اینکه لینک ایمیل بشه میخام به شماره موبایل کاربر ارسال بشهیا روشی اگه هست ممنون میشم راهنمایی کنید
-
مشکل رفع شد
مشکل از روت هام بود براش اشتباهی میدلور guest برای روت home تعریف شده بود
و با یه تغییر تو کنترلر مشکل رفع شد
ممنونم از راهنمایی های شما خیلی خیلی لطف کردید
-
در 7 ساعت قبل، saber گفته است :شما متد اسکوپ رو توی مودل User باید بنویسید از اسکوپ برای استفاده از کوئری Model جاری استفاده میکنن ولی کدتون رو توی مودل ActiveCode نوشتید و چون نتیجه درستی برنمیگرده
شرطی که گذاشتید درست عمل نمیکنه و به روت token ریدایرکت میشه
محل کدها رو تغییر بدید بعد کدتون رو تست کنید
این تیکه کد گذاشتم تو مدل user
public function scopeVerifyCode($query , $code, $user) { return !! $user->activeCode()->whereCode($code)->where('expired_at' , '>' , now())->first(); }
و کنترلر هم به این شکل
$status = ActiveCode::verifyCode($request->token , $user);
اروری که دریافت کردم
Call to undefined method App\Models\ActiveCode::verifyCode()
دقیقا به همون لاین وریفای کد تو کنترلر ارور داده
-
کنترلر به این شکل نوشتم و متد اسکوپ کامنت کردم بازهم برمیگرده به روتی که کد وریفای باید وارد بشه
public function token(Request $request , User $user) { $request->validate([ 'token' => 'required' ]); $count = $user->activeCode()->whereCode($request->token)->where('expired_at' , '>' , now())->count(); if(! $count) { return redirect(route('phone.token')); } auth()->loginUsingId($user->id,$request->get('auth.remember')); $user->activeCode()->delete(); return redirect('/home'); }
-
در 1 ساعت قبل، saber گفته است :توی کدهاتون متد اسکوپ رو موقع استفاده مقادیر اشتباه بهش پاس دادید توی ورودی متد آبجکت user رو دارید ولی موقع پاس دادن اطلاعات بجای user فقظ phone رو بهش پاس دادید
من تو کنترلر به این شکل تغییر دادم این درسته یا این هم اشتباهه؟
$status = ActiveCode::verifyCode($request->token , $user);
چون دوباره برمیگرده به صفحه وریفای کد
تو متد اسکوپ نمیدونم چطوری باید بنویسم
-
در 3 ساعت قبل، saber گفته است :مشکل اصلی شما رو در تاپیک زیر راه حلش رو نوشتم
بعد از ثبت نام هم خطاهای دیگه ای بعد از ثبت کد ارسالی برای کاربر دارید که اونهم مربوط به متد اسکوپ هست که ورودی متد رو باید اصلاح کنید.
ممنون از راهنماییتون مهندس لطف کردید
پس بهتره خودمون بنویسیم روت هارو
بله الان از متد اسکوپ ارور گرفته
Call to a member function activeCode() on null
ورودی به چه صورت باید بنویسم
public function scopeVerifyCode($query , $code, $user) { return !! $user->activeCode()->whereCode($code)->where('expired_at' , '>' , now())->first(); }
مدل یوزر که نباید باشه درسته؟چون ارور دریافت کردم وقتی مدل پاس دادم
-
در 38 دقیقه قبل، saber گفته است :متد لاگین رو دوبار نوشتین؟ توی کدهاتون متد login با دو ورودی مختلف هست کدوم رو الان استفاده میکنید؟
و در مورد خطایی که بالا اشاره کردید کلاس User رو چک کنید ببینید از کلاس Authenticatable ارث بری کرده؟ باید مادل یوزر از این کلاس ارث بری کنه
اگر باز نتونستید حل کنید خواستید کدهاش رو برام زیپ کنید بفرستید روی سیستم خودم تست کنممن موفق نشدم انجام بدم کد براتون ارسال کردم تو پیام خصوصی انجمن
تو تلگرام هم فرستادم
مشکل استاتوس در پنل مدیریت
در رفع مشکلات و سوالات عمومی لاراول Laravel
ارسال شده در · Report reply
سلام شب بخیر من اطلاعات استان و شهر و منطقه رو موقع ثبت نام از کاربر میخام که از طریق ایجکس اطلاعات رو از دیتابیس دریافت میکنم که تا اینجا اکیه
حالا میخام تو پنل مدیریت بتونم مناطق شهرهارو غیرفعال یا فعال کنم مثلا اگه شهر تهران انتخاب شد بتونم تمام مناطقش رو فعال و غیرفعال کنم
برای این چون با ایجکس هست به مشکل خوردم و نتو نستم انجام بدم
الان تمام منطقه هارو نمایش میده چجوری دکمه فعال و غیرفعال رو بزارم که تمام مناطق یک شهر رو در بر بگیره؟
دیتابیس منطقه
Schema::create('regions', function (Blueprint $table) { $table->id(); $table->string('name'); $table->tinyInteger('status')->default(1); $table->foreignId('city_id')->constrained()->cascadeOnDelete(); $table->timestamps(); });
روت
Route::get('/locations' , [AdminController::class , 'showLocation'])->name('locations'); Route::post('/locations/fetch-cities' , [AdminController::class , 'fetchCity']); Route::post('/locations/fetch-regions' , [AdminController::class , 'fetchRegion']); Route::post('/locations' , [AdminController::class , 'submitLocation'])->name('send.locations'); Route::get('locations/status/{location}', [AdminController::class ,'updatestatus'])->name('location.status');
کنترلر
public function showLocation() { $provinces = $data['province'] = Province::get(["name", "id"]); // $regions = Region::get(); return view('admin.locations.location' , compact('provinces')); } public function fetchCity(Request $request) { $data['cities'] = City::where("province_id", $request->province_id) ->get(["name", "id"]); return response()->json($data); } public function fetchRegion(Request $request) { $data['regions'] = Region::where("city_id", $request->city_id) ->get(["name", "id"]); return response()->json($data); } public function submitLocation(Request $request , Region $region) { $request->validate([ 'province' => 'required', 'city' => 'required', 'region' => 'required', ]); if (Region::where('city_id', $request->city)->count() > 0) { if ($request->region[0] == 'status') { $region = Region::where('city_id', $request->city)->get(); } else { alert("لطفا یک گزینه را انتخاب کنید"); } } else { return redirect(route('locations')); } return redirect(route('locations')); } public function updatestatus(Region $region) { if ($region->status == 1) { $region->status = 0; } else { $region->status = 1; } $region->save(); alert()->success('به روز رسانی با موفقیت انجام شد' , 'با تشکر'); return redirect(route('regions')); }
ایجکس