@laravel_pro

Страница 871 из 2014
Antonio
01.11.2017
09:31:07
спасибо

Samat
01.11.2017
10:39:43
в билдере есть метод наподобие unique(), чтобы из выборки получить только отличающиеся

?

только что пробовал, не получается почему-то(

Google
Samat
01.11.2017
10:42:44
$teachers ->join('office_user', 'teachers.user_id', '=', 'office_user.user_id') ->whereIn('office_user.office_id', $current_user_offices); $teachers = $teachers->distinct('user_id')

да, гет у меня потом в отдельном куске. до этого выводил нормально, но с повторами

а groupby поможет?

ахах. нет, кажется))

блин, у меня в повторящихся, по идее, одно поле отличается

Anton
01.11.2017
10:48:31
$teachers = $teachers->distinct('user_id') - а зачем так делать, если можно просто $teachers->distinct('user_id')?

ну и distinct не принимает аргументов

он накладывается на весь SELECT значения

что у тебя в get?

просто get() ?

Samat
01.11.2017
10:49:07
просто гет

Anton
01.11.2017
10:49:25
а что тебе надо получить?

только данные из teachers?

Google
Anton
01.11.2017
10:49:59
если так - get(['teachers.*'])

Maksim (Ellrion)
01.11.2017
10:50:21
попробуй просто ->distinct()->get()

Anton
01.11.2017
10:50:55
попробуй просто ->distinct()->get()
не получится, там будут засасываться данные из office_user

Samat
01.11.2017
10:50:56
попробуй просто ->distinct()->get()
одно поле отличается в выборке. он будет их считать разными записями

Anton
01.11.2017
10:51:38
Samat, ты скажи что тебе получить надо - какие данные

Samat
01.11.2017
10:51:43
а что тебе надо получить?
да, преподов, office_id которых совпадает с office_id авторизованного пользователя

Anton
01.11.2017
10:52:17
данные только преподов? из join таблицы не надо данных?

Samat
01.11.2017
10:52:17
$current_user_offices - вот тут массив из office_id авторизованного

не надо

Anton
01.11.2017
10:52:30
ты видел что я тебе написал?

как попробовать?

Samat
01.11.2017
10:52:52
сейчас попробую

не, повторяющиеся все равно выходят

суть в том, что, если у препода office_id = [2,3] и в $current_user_offices = [2,3], выйдет 2 препода одинаковых

Maksim (Ellrion)
01.11.2017
10:57:30
а не проще через whereHas? Teacher::whereHas('offices', function ($q) use ($current_user_offices) { $q->whereIn('id', $current_user_offices); })->get()

Samat
01.11.2017
11:02:19
у меня Teacher - это модель, наследующая User. offices - это в Users

Maksim (Ellrion)
01.11.2017
11:02:45
и что?

Samat
01.11.2017
11:03:17
ошибка вышла Call to undefined method Illuminate\Database\Query\Builder::offices()

подумал, что как-то влияет

Maksim (Ellrion)
01.11.2017
11:04:30
а релейшен именно offices?

Google
Samat
01.11.2017
11:04:47
да

в модели User

public function offices() { return $this->belongsToMany('App\Office'); }

Maksim (Ellrion)
01.11.2017
11:06:12
странно

т.е. это именно тот код который я написал выдает такой эксепшен?

Samat
01.11.2017
11:11:02
да

Anton
01.11.2017
11:13:04
тогда делай с групбай

->groupBy(['teachers.id'])

и не забыть ->get(['teachers.*'])

Samat
01.11.2017
11:14:25
а из сгруппированных потом хоть один выйдет?

хотя, туплю. сейчас попробую

adikalon
01.11.2017
11:24:43
такая ошибка при применении миграций: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails Есть база тестовая, с ней все нормально - миграции применяются. Есть не тестовая, где внешние ключи иногда не имеет полей в соответствующей таблице. Я так понял, что проблема в этом? Никак вопрос не решить?

Samat
01.11.2017
11:36:20
group by сработал, спасибо)

Antonio
01.11.2017
11:39:27
мускула

adikalon
01.11.2017
11:39:35
че такое мускул?(

Antonio
01.11.2017
11:39:46
mysql

adikalon
01.11.2017
11:39:52
а

Google
adikalon
01.11.2017
11:40:32
а нельзя чтото повесить, дабы при применении миграции, если нет значения в справочной, тогда ключ менялся?

Antonio
01.11.2017
11:47:26
ну по хорошему. надо сначала неправильные ключи заменить на null. потом уже ключ вешать. Но вообще, стоит посмотреть, откуда у тебя неправильные ключи - это значит у тебя нарушена целостность данных

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

Admin
ERROR: S client not available

Anton
01.11.2017
12:05:44
А если я вытаскиваю данные модели и мне надо еще связанную сразу вытащить, ну то есть Model::where()->with('relation')->get([fields])

но из relation модели мне тоже только 1 поле надо...

ну типа сэкономить...

можно так?

Alexey
01.11.2017
12:11:03
можно так?
pluck может? Но не уверен, я с телефона, проверить не могу

relation.field

Anton
01.11.2017
12:11:18
Pluck этл другое...

Alexey
01.11.2017
12:12:08
Попробуй тогда в get рилейшен.филд

Вернет?

F01134H
01.11.2017
12:13:51
Pluck этл другое...
В with можно каллбэк с селектом

Dmitriy
01.11.2017
12:13:52
спички экономите ?

Anton
01.11.2017
12:14:08
спички экономите ?
Академический вопрос.

В with можно каллбэк с селектом
Так можно и SQL написать :).

F01134H
01.11.2017
12:14:43
Это норм практика так то

Dmitriy
01.11.2017
12:15:02
Академический вопрос.
вечно у тебя все академическое

Google
Anton
01.11.2017
12:15:09
callback по сути это написание запроса...

F01134H
01.11.2017
12:15:31
callback по сути это написание запроса...
Это более тонкий контроль выборки

Anton
01.11.2017
12:15:32
вечно у тебя все академическое
Практику то фигли - берешь и ебашишь :).

F01134H
01.11.2017
12:15:41
Что тебе и требовалось

Anton
01.11.2017
12:15:55
SQL даст ещё более тонкий :).

F01134H
01.11.2017
12:16:05
Издеваешься?

Dmitriy
01.11.2017
12:16:09
Практику то фигли - берешь и ебашишь :).
берешь и гуглиш или в код ныряешь =)

Anton
01.11.2017
12:16:14
Я? Никогда...

F01134H
01.11.2017
12:16:21
Заметно

Anton
01.11.2017
12:16:25
Dmitriy
01.11.2017
12:17:32
Гугле не не помогло :).
хм. то-то я 2 варианта нагуглил как это делать можно

Alexey
01.11.2017
12:17:45


Страница 871 из 2014