Laravel объединить таблицы, чтобы получить атрибут от каждого - PullRequest
1 голос
/ 28 марта 2020

У меня есть эти три таблицы

  • склады
    • PK warehouse_id
    • имя_склада
  • good_quantities
    • PK good_quantity_id
    • FK good_id
    • FK warehouse_id
    • количество
  • товар
    • PK good_id
    • good_name

Их Модели с отношениями

Хорошая модель

class Good extends Model
{
/**
 * The table associated with the model.
 *
 * @var string
 */
protected $table = 'goods';

/**
 * Get the Good Quantity for this Good.
 */
public function good_quantities()
{
    return $this->hasMany('App\Models\Good_Quantity','good_id');
}

}

Модель склада

class Warehouse extends Model
{
/**
 * The table associated with the model.
 *
 * @var string
 */
protected $table = 'warehouses';


/**
 * Get the Goods Quantity for this Warehouse.
 */
public function good_quantities()
{
    return $this->hasMany('App\Models\Good_Quantity','warehouse_id');
}

}

Good_Quantity Model

class Good_Quantity extends Model
{
/**
 * The table associated with the model.
 *
 * @var string
 */
protected $table = 'good_quantities';

/**
 * Get the Good's Info.
 */
public function good()
{
    return $this->belongsTo('App\Models\Good','good_id');
}

/**
 * Get the Good Quantity's Warehouse.
 */
public function warehouse()
{
    return $this->belongsTo('App\Models\Warehouse','warehouse_id');
}

}

Я пытаюсь получить все записи в хороших количествах , и хочу отобразить их в Просмотр вот так: | доброе_имение | имя_хранилища | количество | Какой правильный запрос для получения этого результата с Eloquent?

1 Ответ

1 голос
/ 28 марта 2020
//you can get by using join
//in good model
       function function_name(){
$data=App\Good::join('good_quantities','good_quantities.good_id','=','good.good_id')
 ->join('warehouses','warehouses.warehouse_id','=','good_quantities.warehouse_id')
->select('good_name','warehouse_name','quantity')->get();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...