Laravel Eloquent не возвращает объединяющий стол

У меня есть следующая функция, которая объединяет 2 модели.

$listing = Game::where('status', '2')->whereHas('transaction', function ($query) use($id) {
$query->where('status',1)->where('transaction_id', Crypt::decrypt($id));
})->get();

у меня есть Игра модель, которая имеет следующий код.

protected $table = 'game_listings';
protected $primaryKey = 'id';
protected $fillable = ['user_id','asset_id','trade_id','market_name','name','picture','description','price','status','clicks'];
protected $dates = ['deleted_at'];

/*
|--------------------------------------------------------------------------
| RELATIONS
|--------------------------------------------------------------------------
*/
public function user()
{
return $this->belongsTo('App\Models\User');
}

public function transaction()
{
return $this->hasOne('App\Models\GameTransaction','listing_id','id');
}

у меня тоже есть GameTransaction модель, которая имеет следующий код.

protected $table = 'game_transactions';
protected $primaryKey = 'id';
protected $fillable = ['listing_id', 'transaction_id', 'payee_id'];
protected $dates = ['deleted_at'];

У меня проблема в том, $listing переменная только возвращает данные из game_listings стол, и ничего из game_transactions Таблица.

0

Решение

whereHas не загружает отношения. Вы должны использовать with за это. Пытаться:

   Game::where('status', '2')->whereHas('transaction', function ($query) use($id) {
$query->where('status',1)->where('transaction_id', Crypt::decrypt($id));
})->with('transaction')->get()
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector