@websaz
@ajdar9667
@rezajahangir
@mohaligateway
@Rp76
@hesammousavi
@juza66
وقتی میخوام اطلاعات جدول واسط رو بیرون بکشم مشکل داره
$user = Service::find(6);
foreach ($user->products as $role) {
return $role;
}
در مدل هم به این شکل تعریف کردم
public function products()
{
return $this->belongsToMany(Product::class)->using(ProductService::class);
}
این ارور رو میده
Call to undefined method App\Models\ProductService::getNameAttribute()
سلام به شما.
من یه مثال میزنم خدمتتون شما ربطش بدین به پروژه خودتون.
فرض کنید ما یه سایت خبری داریم و داخل سایت نویسنده ها داخل پنل کاربری خودشون مقاله ایجاد میکنن، حالا میخوایم داخل صفحه اصلی سایت نام نوسینده ای که مقاله مورد نضر رو ایجاد کرده رو نمایش بدیم، برای انجام این کار باید داخل مدل Article یه رابطه به صورت زیر تعریف کنیم.
public function user() {
return $this->belongsTo(User::class);
}
بعد داخل متد کنترلر مربوطه به صورت زیر بنویسید.
$articles = Article::latest()->paginate(3);
return view('index', compact('articles'));
سپس داخل بلید هم به صورت زیر بنویسید.
@foreach($articles as $article)
{{ $article->user->name }}
@endforeach
موفق باشید.
سلام دوست عزیز
اگر جداولتون رو قرار بدید بسیار عالی میشه
در روابط چند ب چند که جدول واسطی هم دارید به عنوان pivot فیلد های اضافه ی اون جدول رو قرار میدن و فراخوانی میکنن
چند مثال میزارم امیدوارم کمکتون کنه
توی مدل
public function products()
{
return $this->belongsToMany(Product::class)->withPivot('count','price','id');
}
توی کنترلر ها یا به طور کلی فراخوانیش
'count'=>$product->pivot->count*$parent->pivot->count
اگر توی توابع که برای جمع و اینا هست ک مجبوری اسم فیلد رو داخلش بزاری هم به شکل زیر
$price=$order->products()->where('name','LIKE','%هزینه ارسال%')->get()->sum('pivot.price');
یا
$data['bonded_total_price']+=$order->bondeds->sum('pivot.price');
و در پایان هم مثلا جدول رابط من ب شکل زیر هست
Schema::create('order_product', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('product_id');
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
$table->unsignedBigInteger('order_id');
$table->foreign('order_id')->references('id')->on('orders')->onDelete('cascade');
$table->integer('count')->default(0);
$table->integer('price')->default(0);
});
در رابطه با using اطلاعی ندارم اگر بیشتر توضیح بدین که چیکار کردین میخوایید چ کنید و جداول چیه بیشتر میشه کمک کرد
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟