دوستان و اساتید سلام و سال نو همتون مبارک باشه
آقا من یه کیف پول توی پروژه ایجاد کردم به چنتا مشکل برخوردم میخواستم راهنماییم کنید ممنونتون میشم
ببینید من یه جدول wallet و یه جدول payment دارم و اطلاعات کیف پول و تراکنشهارو توی جدول ولت ذخیره میکنم که بتونم تاریخچه تراکنش های کاربران رو پزارش بگیرم عکس زیر مایگریشن ولت هستش که یه توضیح میدم خدمتتون
1- من یه type دارم که نوع تراکنش رو نشون میده کاهش یا فزایش و یا انتقال بین کاربران
2- یه inventory دارم که قراره موجودی کاربر ثبت بشه توش و میخوام بر اساس اینکه type چه مدلی هست عملیات جمع تفریق روی inventory انجام بشه و ذحیره بشه
چالش ها:
مورد اول اینکه من با توجه به این رابطه ای یک به چندی که با یوزر دارم چطور میتونم توی ویو موجودی مربوط به کاربر نشون بدم (میدونم پیش پا افتادست سوالم ولی هرچی فکر ردم یادم نیومد :) )
مورد بعدی اینکه عملیات جمع و تفریق رو چطور توی کنترلر پیاده سازی کنم بهتره خودم نظرم اینه که فیلد inventory رو بریزم توی متغیر و بعد یه شرط بزارم براساس type ریکوئستی که اومده و بعد جمع یا تفریق رو انجام بدم و بعد جواب نهایی رو بریزم توی inventory (اگر نظر بهتری درید منون میشم راهنمایی کنید)
مورد آخر بحث انتقال موجودی بین کاربران رو چطور هندل کنم؟
ببینید واضحتر توضیح میدم سوال آخرم رو من از طریق شماره موبایل که توی جدول کاربران یونیک هست کاربر رو پیدا کنم ولی چطور به دوتا سطر توی جدول ولت ایجاد کنم که یکیش مال کاربر انتقال دهنده باشه و یکیش مال کاربر انتقال گیرنده که بعد توی گزارش گیری به مشکل بر نخورم
لطفا تقاضایی که دارم توضیحتون واضح و کامل باشه من تازه لاراولی شدم :)
سلام
مورد اول که یه رابطه یک به چند توی مدل user و wallet ایجاد کن این شکلی
توی مدل user:
public function wallets(){
return $this->hasMany(Wallet::class);
}
و توی مدل wallet هم به این صورت
public function user(){
return $this->belongsTo(User::class);
}
بعد برای گزارش گیری هرکاربر به این صورت:
$user = User::find(1);
$user->wallets;
که حالا با یه where میتونی فیلتر کنی چیزی که میخوای رو
مورد دوم هم که جمع و تفریق رو اصلا لازم نیست توی inventory ذخیره کنی بجاش میتونی از sum استفاده کنی
مثلا:
$user->wallets->sum('price');
یا مثلا:
$user->wallets->sum('price')->where('type', 'increase');
یا حتی با استفاده از sql مستقیم شرط هات رو لحاظ کنی
و برای مورد سوم هم میتونی توی همون فیلد description ذخیریه کنی که برای کی فرستاده پول رو
تمام
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟