Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.06.2020 21:44:50

Как сделать строгую выборку по списку значений?

Уважаемое сообщество, у кого есть свободная минутка, просьба мочь разобраться.

Чтоб был более понятен мой вопрос, коротко опишу ситуацию.
Есть две таблицы, у каждой две колонки:
    • books (id, name)
    • books_attribute (book_id, book_attributes_id)

В таблице  books_attribute оба поля это внешние ключи. Идея в том, что у одной книги может быть несколько атрибутов.

Вот пример таблиц:
books
id    |name
___________
47    |Пушкин
48    |Лермонтов
49    |Достоевский
50    |Толстой

book_attributes
book_id    |book_attributes_id
___________
47    |2
47    |3
47    |1
47    |7
48    |2
48    |1
48    |10
48    |3
48    |8
49    |11
49    |1
49    |2
50    |8
50    |7
50    |1

Теперь вопрос
Как получить определенные book_id, если передаю список значений (айдишников) для  book_attributes_id?

Чтоб еще точней.. Если я передаю, например, в where, такие значения book_attributes_id: 2, 3
То должен получить только: 47, 48.

2, 1, 10, 3 = 48
1, 7 = 47, 50

Мое гугленье не дало результатов, или я не правильно искал.
Спасибо!

Не в сети

#2 26.06.2020 09:04:23

Re: Как сделать строгую выборку по списку значений?

BookAttribute::whereIn('book_attributes_id', [2, 3])->pluck('book_id');

Не в сети

#3 22.08.2020 14:46:40

kodzero
Откуда: San Francisco
Сообщений: 21
Сайт

Re: Как сделать строгую выборку по списку значений?

Может, конечно что-то не понимаю и не знаю, так как недавно в Ларавел, все так хвалят Илокент, но единственный его плюс - это на мой взгляд встроенные события.
И огромные недостатки для компании, если посмотреть в долгосрочной перспективе.
1) Стандартизация - относительно всего мира. Вроде бы объект илокент не сложный и его можно разобрать и выучить, чтобы им пользоваться, но вход в проект PHP специалистов становиться сложнее и нужно каждый раз вникать, а можно ли потом будет это сделать средствами Илокент, а стоит ли на него вообще тратить время?
Запросы должны быть скульные, для взаимо понимания всего интернет сообщества. Ближе всего к этому фасад DB::
2) Гибкость запросов.
Это как сравнивать jQuery и JavaScript
Eloquent и DB::
Верно понимаю или кто-то считает иначе?


Мое мнение - скорее всего Ваша проблема в том, что в интернете много курсов по той же MySQL, где вилами по воде или препод гундосит себе под нос, сам не понимая, что он несет отрабатывая свои часы. Конечно есть хорошие курсы, можно как правило скачать с торрентов, если совсем денег нет, но было бы желание, но и к сожалению и там попадается полно "Г". 
По поводу скуль запросов, как не оказалось странным, хороший курс вообще бесплатный оказался и лежит на Ютубе, где все сжато, скомпактно и понятно и начинающий уже через 3 часа его конспектирования без проблем будет писать даже средней сложности запросы.
https://www.youtube.com/playlist?list=P … fThCjYw2bJ

Проблема "Г", кстати идет не от того, что препод может понимать или не понимать предмет, а от того, что он даже не понимает, с чем он работает. Он думает, что он работает с MySQL, PHP, Английским или чем-то еще, но по факту он работает с Вашим мозгом, конечная задача, чтобы Вы запомнили материал.
На деле система отрабатывает часы, чтобы клепать рабов, не дай боже, чтобы они стали чуть-чуть одареннее чем другие, как таких потом контролировать? Поэтому идет повсеместное 100% невежество учителей в плане работа человеческого мозга, они знают только 7 плюс минус 2 из советской школы и хвалят ее - хотя она таковой не была! Это миф Отцов и Матерей, чтобы принизить детей.
Если препод, не знает с копе, что такое 7 + - 2, кривая Эбингауза, у него нет ителлект карт Тони Бизьона на его материал и он не владеет мнемотехниками, как запомнить 100 слов подряд с одного повторения, то на мой взгляд - это мошенник и не Важно что его порадила система. Примерно по той же причине не трогают инфо-бизнесменов, хотя в основном там мошенники. 99% Учителей в школе и Университетах такие. Если ученик не может  запомнить текс на одной странице слово к слову или формулу, то надо не ему ставить 2, а увольнять преподавателя. Но так как там сверх низкие зарплаты и система уже отработана на клепания рабов, то мы имеем, то что имеем.
Хотя "Дворец памяти" Цицерона уже был придуман до нашей эры и не надо тут ляля что министр образование ничего не знает про эти технологии. Когда надо защитить жопу короля и его приближенной свиты они тут же учат обезьян, как надо запомнить карту с одного взгляда или шпионов, чтобы запомнить длинную комбинацию цифр.
Ну, а что вы хотите? Самое страшное предательство учителей в школах, не то что ни Ваши голоса кидают в урну как им сказал "голый король". А в том, какими инструментами и технологиями нужно наращивать "коннектом" в 10 раз быстрее, чем это они делают сейчас, печаль в том, что они даже не знают и не интересуются, что это такое, не то что как этим правильно пользоваться, когда эпоха интернета уже давным давно все это показывает.

Есть конечно нормальные школы, которые это понимают и используют мнемотехники в своих предметах, но их можно по пальцам пересчитать, предположим Advance.

Если изучите технологии запоминания, то сразу поймешь, что в сфере ИТ, как и во многих предметах, правильных уроков и материала практически нету. Иногда только встречаешь и понимаешь, что человек ими владеет, предположим сказка "Алиса в стране чудес" или Паттерны от банды четырех - это явный примем мнемотехники, а именно интеллект  карт, потому что чисто кодом - это не запомнить. Но даже для того, чтобы проще понимать и запоминать - это навык нужно ставить, как вождение машиной. Но вас в школе "наеб...и" на 10 лет - по другому это не назавешь. Не дали Вам это один из навыков, чтобы Вы запомнили эту книгу за 2-3 дня с одного прочтения и могли потом использовать.

Интернет есть, но было бы желание, правильнЫЕ дорогИ Вашей проблемы указал. Коннектом + мнемотехники.

Как можно участвовать в гонках на машине, когда не понимаешь, как у нее все работает под копотом? (я про ваш мозг)

В конкретном данном случае из тех навыков что Вы владеете лучшим будет посмотреть тот плей лист на Ютубе, что дал выше и законспектировав, хотя бы моторкой возьмете(тоже память), базовая интеллект карта там показана - как эксель таблица. Далее запросы быстро накатите на DB:: фасад.

Удачи.

Не в сети

#4 23.08.2020 16:01:59

Re: Как сделать строгую выборку по списку значений?

Верно понимаю или кто-то считает иначе?

На эту тему когда-то давно был знатный холивар.

Не в сети

#5 24.08.2020 19:05:38

kodzero
Откуда: San Francisco
Сообщений: 21
Сайт

Re: Как сделать строгую выборку по списку значений?

Спасибо за инфу.

Не в сети

Подвал раздела