Код: Выделить всё
Illuminate\Database\QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'matches.male_email' in 'order clause' (Connection: mysql, SQL: select `matches`.*, `males`.`email` as `male_email`,
`females`.`email` as `female_email`, `places`.`name` as `place_name` from `matches` left join `users` as `males` on `males`.`id` = `matches`.`male_id` and `males`.`gender` = male
left join `users` as `females` on `females`.`id` = `matches`.`female_id` and `females`.`gender` = female left join `places` on `places`.`id` = `matches`.`place_id` where `matches`.`deleted_at` is null order by `matches`.`male_email` asc limit 20 offset 0)
GET 127.0.0.1:8000
PHP 8.2.12 — Laravel 12.19.3
Код: Выделить всё
public function get(Request $request): LengthAwarePaginator
{
$limit = CommonComponent::newListLimit(query: $request);
$builder = $this->matchModel
->leftJoin(
'users as males',
fn ($join) =>
$join->on('males.id', '=', 'matches.male_id')
->where('males.gender', '=', Gender::MALE)
)
->leftJoin(
'users as females',
fn ($join) =>
$join->on('females.id', '=', 'matches.female_id')
->where('females.gender', '=', Gender::FEMALE)
)
->leftJoin('places', 'places.id', '=', 'matches.place_id')
->select(
'matches.*',
'males.email as male_email',
'females.email as female_email',
'places.name as place_name'
);
if (!empty($request['free_word'])) {
$builder->where(
fn ($q) =>
$q->where('males.email', 'like', '%' . $request['free_word'] . '%')
->orWhere('females.email', 'like', '%' . $request['free_word'] . '%')
);
}
$items = $builder
->with('female', 'male', 'place')
->sortable([
'datetime' => 'desc',
'status' => 'asc',
'male_email' => 'asc',
'female_email' => 'asc',
'place_name' => 'asc',
])
->paginate($limit);
public function scopeMaleEmailSortable($query, $direction)
{
return $query->orderBy('males.email', $direction);
}
public function scopeFemaleEmailSortable($query, $direction)
{
return $query->orderBy('females.email', $direction);
}
public function scopePlaceNameSortable($query, $direction)
{
return $query->orderBy('places.name', $direction);
< /code>
Я не могу это исправить - кто -нибудь может мне помочь? Я пробовал много способов. Я получаю ошибку с левым соединением, которая показывает «неизвестный столбец», хотя я включил все. Столбец не найден: 1054 Неизвестный столбец 'matches.male_email' в «пункте заказа».
Подробнее здесь: https://stackoverflow.com/questions/796 ... own-column
Мобильная версия