получить дополнительный столбец с красноречивым hasManyThrough - PullRequest
0 голосов
/ 07 января 2020

у меня три таблицы cart, cart_products, products

у меня есть такое отношение в таблице cart

  public function products()
    {
        return $this->hasManyThrough(Product::class,CartProducts::class,'cart_id','id' )->withPivot('cart_products');
    }

и это моя таблица cart_products

Schema::create('cart_products', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedInteger('product_id')
            ->references('id')->on('products')->onDelete('cascade');
            $table->unsignedInteger('cart_id')
            ->references('id')->on('carts')->onDelete('cascade');
            $table->unsignedInteger('quantity');
            $table->timestamps();
        });

i наконец, все продукты, но мне нужно получить столбец количества с этой реалией

любая помощь?

Ответы [ 2 ]

2 голосов
/ 07 января 2020

Используйте отношение многие ко многим с belongsToMany()

public function products()
{
    return $this->belongsToMany(Product::class)->withPivot('quantity')->withTimestamps();
}
1 голос
/ 07 января 2020

Вы можете извлечь столбец qauantity из сводной таблицы cart_products, передав имя столбца методу withPivot

    //...
    return $this->belongsToMany('App\Product')
    ->using('App\CartProducts')
    ->withPivot('quantity');

См.

Определение пользовательской промежуточной таблицы Модели

в Документы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...