Samat
попробуй просто ->distinct()->get()
одно поле отличается в выборке. он будет их считать разными записями
Anton
Samat, ты скажи что тебе получить надо - какие данные
Samat
а что тебе надо получить?
да, преподов, office_id которых совпадает с office_id авторизованного пользователя
Anton
данные только преподов? из join таблицы не надо данных?
Samat
$current_user_offices - вот тут массив из office_id авторизованного
Samat
не надо
Anton
ты видел что я тебе написал?
Anton
как попробовать?
Samat
сейчас попробую
Samat
не, повторяющиеся все равно выходят
Samat
суть в том, что, если у препода office_id = [2,3] и в $current_user_offices = [2,3], выйдет 2 препода одинаковых
Maksim (Ellrion)
а не проще через whereHas? Teacher::whereHas('offices', function ($q) use ($current_user_offices) { $q->whereIn('id', $current_user_offices); })->get()
Samat
у меня Teacher - это модель, наследующая User. offices - это в Users
Maksim (Ellrion)
и что?
Samat
ошибка вышла Call to undefined method Illuminate\Database\Query\Builder::offices()
Samat
подумал, что как-то влияет
Maksim (Ellrion)
а релейшен именно offices?
Samat
да
Samat
в модели User
Samat
public function offices() { return $this->belongsToMany('App\Office'); }
Maksim (Ellrion)
странно
Maksim (Ellrion)
т.е. это именно тот код который я написал выдает такой эксепшен?
Samat
да
Anton
тогда делай с групбай
Anton
->groupBy(['teachers.id'])
Anton
и не забыть ->get(['teachers.*'])
Samat
а из сгруппированных потом хоть один выйдет?
Samat
хотя, туплю. сейчас попробую
adikalon
такая ошибка при применении миграций: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails Есть база тестовая, с ней все нормально - миграции применяются. Есть не тестовая, где внешние ключи иногда не имеет полей в соответствующей таблице. Я так понял, что проблема в этом? Никак вопрос не решить?
Samat
group by сработал, спасибо)
Antonio
как перебрать все свойства модели?
Antonio
мускула
adikalon
че такое мускул?(
Antonio
mysql
adikalon
а
adikalon
а нельзя чтото повесить, дабы при применении миграции, если нет значения в справочной, тогда ключ менялся?
Antonio
ну по хорошему. надо сначала неправильные ключи заменить на null. потом уже ключ вешать. Но вообще, стоит посмотреть, откуда у тебя неправильные ключи - это значит у тебя нарушена целостность данных
Antonio
а нельзя чтото повесить, дабы при применении миграции, если нет значения в справочной, тогда ключ менялся?
ещеможно отключить проверку внешних ключей, повесить его на поле и включить проверку обртано. Но тогда у тебя будут ссылки на несуществующие данные. Что не очень хорошо и должно анально караться
Anton
А если я вытаскиваю данные модели и мне надо еще связанную сразу вытащить, ну то есть Model::where()->with('relation')->get([fields])
Anton
но из relation модели мне тоже только 1 поле надо...
Anton
ну типа сэкономить...
Anton
можно так?
Aleksey Y.
можно так?
pluck может? Но не уверен, я с телефона, проверить не могу
Aleksey Y.
relation.field
Anton
Pluck этл другое...
Aleksey Y.
Попробуй тогда в get рилейшен.филд
Aleksey Y.
Вернет?
invariance
Pluck этл другое...
В with можно каллбэк с селектом
Dmitriy
спички экономите ?
Anton
спички экономите ?
Академический вопрос.
Anton
В with можно каллбэк с селектом
Так можно и SQL написать :).
invariance
Это норм практика так то
Dmitriy
Академический вопрос.
вечно у тебя все академическое
Anton
callback по сути это написание запроса...
invariance
callback по сути это написание запроса...
Это более тонкий контроль выборки
Anton
вечно у тебя все академическое
Практику то фигли - берешь и ебашишь :).
invariance
Что тебе и требовалось
Anton
SQL даст ещё более тонкий :).
invariance
Издеваешься?
Dmitriy
Практику то фигли - берешь и ебашишь :).
берешь и гуглиш или в код ныряешь =)
Anton
Я? Никогда...
invariance
Заметно
Dmitriy
Гугле не не помогло :).
хм. то-то я 2 варианта нагуглил как это делать можно
Aleksey Y.
Anton
Хоть на lmgify
Dmitriy
гугл uk видимо так не умеет
Dmitriy
Отлично - дай ссылки
https://stackoverflow.com/questions/19852927/get-specific-columns-using-with-function-in-laravel-eloquent
Aleksey Y.
гугл uk видимо так не умеет
Может картинка устарела, так то в справке по расширенном поиску должно быть
Anton
С callback
Anton
Вторая?
Anton
В релейшен это я знал
Anton
Но мне так нельзя было. Сорри что не сказал
Aleksey Y.
<тут должна быть гифка про занудство и недосказанность>