Я пытаюсь выяснить, как создать запрос для объектива Laravel Nova.Я знаю, что основной запрос - это то, что важно здесь, но я также не могу понять это.Я пытаюсь получить значения из отношения, вот мои таблицы:
accounts
statements
statement_versions
Что я хочу сделать, это извлечь значение из таблицы statement_versions
и связать его с учетной записью в объективе.Итак, я хочу получить balance
из моего statement_versions
и связать его с учетной записью.Вот как определяются мои отношения:
// Accounts
public function statements()
{
return $this->hasMany(Statement::class);
}
public function statementVersions()
{
return $this->hasManyThrough(StatementVersion::class, Statement::class);
}
// Statements
public function accounts()
{
return $this->belongsTo(Account::class);
}
public function statementVersions()
{
return $this->hasMany(StatementVersion::class);
}
// StatementVersion
public function accounts()
{
return $this->belongsToThrough(Account::class, Statement::class);
}
public function statements()
{
return $this->belongsTo(Statement::class);
}
Вот объектив, который я пытался создать:
public static function query(LensRequest $request, $query)
{
return $request->withOrdering($request->withFilters(
$query->select([
'statement_version.balance',
])
->join('statements', 'statement.id', '=', 'statement_version.statement_id')
->join('accounts', 'accounts.id', '=', 'statement.account_id')
->orderBy('balance', 'desc')
->groupBy('accounts.id', 'accounts.name')
));
}
Возвращает ошибку 1066 Not unique table/alias: 'accounts'
.Как бы я сделал этот запрос и этот объектив работает?