سلام دوستان
ما سه تا مدل داریم (کاربر − ارز ها − موجودی ها)
ساختار تیبل موجودی ها به این صورت:
$table->id();
$table->unsignedBigInteger('user_id');
$table->unsignedBigInteger('coin_id');
$table->string('symbol');
$table->decimal('balance')
$table->timestamps();
توی صفحه هم که قراره موجودی های کاربر رو نمایش بده لیست ارزها رو توی یک جدول نمایش دادم و یک ستون هم برای نمایش موجودی ارز قرار دادم
فرض میکنیم به این صورت لیست ارزها نمایش داده میشه:
foreach ($coins as $coin)
<p>$coin->name</p>
<p>$coin->user->balance</p>
endforeach
روابط بین جداول باید به چه صورت باشه که بتونم موجودی ارز کاربر رو به این صورت coin->user->balance$
دریافت کنم
سلام به شما دوست عزیز.
با توجه به توضیحاتتون رابطتتون باید یک به یک باشه، یعنی هر کاربر یه موجودی داره و هر موجودی مربوط به یه کاربر میشه، پس
مدل User
public function coin() {
return $this->hasOne(Coin::class);
}
مدل Coin
public function user() {
return $this->belongsTo(User::class);
}
و در اخر کد شما باید به صورت زیر باشه.
$user->coin->balance
موفق باشید.
ممنون از پاسختون
تنها یک موجودی نداره منظور اینه هر کاربر برای هر ارز یک موجودی داره یعنی اگه ۱۰ تا ارز داشته باشیم در جدول موجودی ها ده ردیف مربوط کاربره
باز هم این رابطه درسته؟
@rezajahangir
سلام
این روابط بر اساس نوع استفاده شما ممکنه متفاوت باشه، اگر ارزهای مورد بحث از نوع فیات باشند ساختار جدول شما درسته فقط باید توسعه داده بشه و می تونید هم از روابط many-to-many استفاده کنید هم polymorphic اما اگر ارز دیجیتال هم بخشی از هدف شماست که این ساختار پاسخ گو نیست.
ببینید سیستم های مالی هم به صورت متمرکز هم به صورت غیرمتمرکز قابل پیاده سازی هستند از اونجایی که شما توضیح مناسبی برای درک مکانیزم کارتون ارایه ندادید قابل تشخیص نیست که این سیستم از چه ساختاری پیروی میکنه اما به صورت پیش فرض ما در نظر میگیرم که حتی اگر متمرکز کار می کنید یک ارتباط موثر با دیفای دارید پس سیستم شما باید بتونه از توکن های مختلف پشتیبانی بکنه حالا چون توکن ها بر اساس قراردادهای هوشمند و استانداردهای مختلفی روی بلاکچین پیاده سازی شدن مشهوده که سیستم معرفی شده شما از ظرفیت لازم برای تعامل با این سیستم برخوردار نیست.
برای مثال: دیتابیس شما شامل یک تیبل هست که symbol و balance رو ذخیره میکنه این چیزی است که قراره کاربر ببینه مثلا موجودی usdt خودش رو مشاهده بکنه اما شما سمت بک اند باید این رو در نظر بگیرید که این usdt روی شبکه ترون (trc20) واریز شده یا روی شبکه اتریوم (erc20). در واقع کاربر شما ممکنه روی شبکه های متنوعی واریز یا برداشت داشته باشه اما در سمت فرانت باید بدون در نظر گرفتن پروتکل انتقالی یک موجودی خالص در اختیار کاربر بگذارید. تیبل شما این کار رو انجام نمیده.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟