SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in order clause is ambiguo
Why do i get this error here even though i set the default sort from the specific table?
<?php
namespace App\Filament\Resources\UserResource\RelationManagers;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
class WatchedLecturesRelationManager extends RelationManager
{
protected static string $relationship = 'watchedLectures';
protected ?string $heading = 'Гледани лекции';
protected static ?string $title = 'Гледани лекции';
protected static ?string $pluralModelLabel = 'Гледани лекции';
protected static ?string $modelLabel = 'Гледани лекции';
public function table(Table $table): Table
{
return $table
->recordTitleAttribute('id')
->columns([
Tables\Columns\TextColumn::make('lecture.title')
->label('Лекција'),
Tables\Columns\TextColumn::make('user_watched_lectures.created_at')
->label('Креирано на')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->headerActions([
//
])
->actions([
//
])
->bulkActions([
//
])
->defaultSort('user_watched_lectures.created_at', 'desc');
}
}
<?php
namespace App\Filament\Resources\UserResource\RelationManagers;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
class WatchedLecturesRelationManager extends RelationManager
{
protected static string $relationship = 'watchedLectures';
protected ?string $heading = 'Гледани лекции';
protected static ?string $title = 'Гледани лекции';
protected static ?string $pluralModelLabel = 'Гледани лекции';
protected static ?string $modelLabel = 'Гледани лекции';
public function table(Table $table): Table
{
return $table
->recordTitleAttribute('id')
->columns([
Tables\Columns\TextColumn::make('lecture.title')
->label('Лекција'),
Tables\Columns\TextColumn::make('user_watched_lectures.created_at')
->label('Креирано на')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->headerActions([
//
])
->actions([
//
])
->bulkActions([
//
])
->defaultSort('user_watched_lectures.created_at', 'desc');
}
}
2 Replies
for some reason the query is still sent like this
select
`user_watched_lectures`.`user_id` as `pivot_user_id`,
`user_watched_lectures`.`lecture_id` as `pivot_lecture_id`,
`user_watched_lectures`.`created_at` as `pivot_created_at`,
`user_watched_lectures`.`updated_at` as `pivot_updated_at`,
`user_watched_lectures`.*,
`lectures`.*
from
`lectures`
inner join `user_watched_lectures` on `lectures`.`id` = `user_watched_lectures`.`lecture_id`
where
`user_watched_lectures`.`user_id` = 1
order by
`user_watched_lectures`.`id` desc,
`order` asc,
`created_at` asc
limit
10 offset 0
select
`user_watched_lectures`.`user_id` as `pivot_user_id`,
`user_watched_lectures`.`lecture_id` as `pivot_lecture_id`,
`user_watched_lectures`.`created_at` as `pivot_created_at`,
`user_watched_lectures`.`updated_at` as `pivot_updated_at`,
`user_watched_lectures`.*,
`lectures`.*
from
`lectures`
inner join `user_watched_lectures` on `lectures`.`id` = `user_watched_lectures`.`lecture_id`
where
`user_watched_lectures`.`user_id` = 1
order by
`user_watched_lectures`.`id` desc,
`order` asc,
`created_at` asc
limit
10 offset 0
Maybe try instead of the default sort:
->modifyQueryUsing(function (Builder $query) {
$query
->orderBy('user_watched_lectures.created_at', 'asc');
})
->modifyQueryUsing(function (Builder $query) {
$query
->orderBy('user_watched_lectures.created_at', 'asc');
})