Size: a a a

2020 September 13

MB

Max Bolgar in Laravel Pro
Всем привет, у меня есть коллекция которую надо отсортировать по двум полям, причем по первому от большего к меньшему, по второму от меньшему к большему, как это можно сделать?

Пробовал делать так - не сработало:

collect($products)->sortBy('availability', SORT_REGULAR, true)->sortBy('price')->toArray();
источник

S

Sergo in Laravel Pro
это дамп чего?
источник

АГ

Алексей Гевондян... in Laravel Pro
Max Bolgar
Всем привет, у меня есть коллекция которую надо отсортировать по двум полям, причем по первому от большего к меньшему, по второму от меньшему к большему, как это можно сделать?

Пробовал делать так - не сработало:

collect($products)->sortBy('availability', SORT_REGULAR, true)->sortBy('price')->toArray();
Коллбек сортировки сделай
источник

нc

николай catman... in Laravel Pro
Max Bolgar
Всем привет, у меня есть коллекция которую надо отсортировать по двум полям, причем по первому от большего к меньшему, по второму от меньшему к большему, как это можно сделать?

Пробовал делать так - не сработало:

collect($products)->sortBy('availability', SORT_REGULAR, true)->sortBy('price')->toArray();
разбить на подколлекции
источник

MB

Max Bolgar in Laravel Pro
николай catman
разбить на подколлекции
спасибо, думал об этом, наверное это самый просто вариант, сортировать две колекции по отдельности, а потом мержить их
источник

HM

Haybulla Musaev in Laravel Pro
Ребят, добрый день. Позвольте вопрос по eloquent.

Есть 3 таблицы - доктора, клиенты, КлиентКурс, как связь клиента и некоего курса в системе.

doctor
   id - integer
   name - string

client_course
   id - integer
   course_id - integer
   doctor_id - integer
   client_id - integer

client
   id - integer
   name - string

То есть доктор назначается на конкретный курса, а не закрепляется за клиентом. Как прокинуть связь, чтобы внутри модели доктора можно было зацепить всех клиентов, назначенных на курсы? Я пробовал так:

public function clients() {
     return $this->hasManyThrough('App\Client', 'App\ClientCourse');
}

Но на это вылетает ошибка
Column not found: 1054 Unknown column 'clients.client_course_id' in 'on clause'

Можно ли в рамках моей структуры сделать такой проброс? В примере из документации структура несколько иная.
источник

нc

николай catman... in Laravel Pro
Haybulla Musaev
Ребят, добрый день. Позвольте вопрос по eloquent.

Есть 3 таблицы - доктора, клиенты, КлиентКурс, как связь клиента и некоего курса в системе.

doctor
   id - integer
   name - string

client_course
   id - integer
   course_id - integer
   doctor_id - integer
   client_id - integer

client
   id - integer
   name - string

То есть доктор назначается на конкретный курса, а не закрепляется за клиентом. Как прокинуть связь, чтобы внутри модели доктора можно было зацепить всех клиентов, назначенных на курсы? Я пробовал так:

public function clients() {
     return $this->hasManyThrough('App\Client', 'App\ClientCourse');
}

Но на это вылетает ошибка
Column not found: 1054 Unknown column 'clients.client_course_id' in 'on clause'

Можно ли в рамках моей структуры сделать такой проброс? В примере из документации структура несколько иная.
скорее всего в опциональных параметрах релейшена надо указать нужную колонку
источник

R

Romchik in Laravel Pro
Haybulla Musaev
Ребят, добрый день. Позвольте вопрос по eloquent.

Есть 3 таблицы - доктора, клиенты, КлиентКурс, как связь клиента и некоего курса в системе.

doctor
   id - integer
   name - string

client_course
   id - integer
   course_id - integer
   doctor_id - integer
   client_id - integer

client
   id - integer
   name - string

То есть доктор назначается на конкретный курса, а не закрепляется за клиентом. Как прокинуть связь, чтобы внутри модели доктора можно было зацепить всех клиентов, назначенных на курсы? Я пробовал так:

public function clients() {
     return $this->hasManyThrough('App\Client', 'App\ClientCourse');
}

Но на это вылетает ошибка
Column not found: 1054 Unknown column 'clients.client_course_id' in 'on clause'

Можно ли в рамках моей структуры сделать такой проброс? В примере из документации структура несколько иная.
если правильно понял, то нужно создать связь doctor с client_course, потом связь client_course и client. А потом вызвать doctor->with(связь doctor с client_course)->with(связь client_course и client)
источник

HM

Haybulla Musaev in Laravel Pro
благодарю за советы, я разобрался.
источник

HM

Haybulla Musaev in Laravel Pro
тут не связь ко многим через, здесь belongsToMany
источник

HM

Haybulla Musaev in Laravel Pro
решается вот так
источник

HM

Haybulla Musaev in Laravel Pro
return $this->belongsToMany(Client::class, 'client_course', 'doctor_id', 'client_id');
источник

HM

Haybulla Musaev in Laravel Pro
намудрил изначально
источник

HM

Haybulla Musaev in Laravel Pro
по сути client_course как pivot для них
источник

V

Vladyslav in Laravel Pro
Romchik
если правильно понял, то нужно создать связь doctor с client_course, потом связь client_course и client. А потом вызвать doctor->with(связь doctor с client_course)->with(связь client_course и client)
🌚 божечки шо это
источник

HM

Haybulla Musaev in Laravel Pro
Так же Вы мне это и посоветовали в другом чате)))))))))))
источник

HM

Haybulla Musaev in Laravel Pro
Чему Вы удивляетесь?
источник

V

Vladyslav in Laravel Pro
идее с ->with и подгрузке связей 🌝
источник

HM

Haybulla Musaev in Laravel Pro
Vladyslav
🌚 божечки шо это
а, ой, не мне был ответ, понял))
источник

AR

Ali Rymkhanov in Laravel Pro
Всем привет, хотел спросить, для google авторизацию в rest api используем тот же метод как и в обычных сайтах ?\
источник