2015-01-20 6 views
0

Я разрабатываю сайт с Laravel 4.2. У меня есть две таблицы, а именно: «статьи» и «теги».Laravel eloquent найти в массиве из sql

Это таблицу тегов: id | article_ids | xxxx 2 | 2,41,23,6 | xxxx

я использую красноречивый и я хочу найти идентификатор статьи в колонке article_ids. Как я могу это сделать ?

Могу ли я искать в mysql вот так?

Спасибо за помощь. Соры за мой плохой английский.

+2

плохой дизайн стол, стол с одним идентификатором в article_id делает много для чувства –

+0

да, но я хочу, чтобы узнать это на другие проекты. Для меня это важно. –

ответ

2

Практически все уже сказано - плохой дизайн, и вам следует избегать его и т. Д. И т. Д. Это правда, я согласен.

Сделайте это по-своему. Однако, вот как это делается в MySQL:

// say you want tags related to articles 2 and 23 

SELECT * FROM tags 
WHERE FIND_IN_SET('2', article_ids) 
AND FIND_IN_SET('23', article_ids); 

// Eloquent 
Tag::whereRaw(
    'find_in_set(?, article_ids) and find_in_set(?, article_ids)', 
    [$id1, $id2] // bindings array 
)->get(); 
+0

THX для ответа, я сделаю теги правильным способом. Мне просто нужно это узнать. Запрос верен, но как я могу это сделать с laravel. –

+0

Просто используйте сырую деталь - проверьте редактирование. –

0

Это очень плохой способ связать теги со статьями, как вы только что узнали, потому что с ними нельзя легко запросить. Вместо этого для отношений «многие-ко-многим» между ними вам понадобится промежуточная таблица с столбцами article_id и tag_id. Для статьи с четырьмя тегами должно быть четыре записи, по одной для каждой ассоциации.

+0

okey, это так плохо для тегов. Итак, для меня есть другой проект. Я пытаюсь message_groups и сообщения. Я думал сохранить user_id в столбце пользователей сообщений_групп. И найдите, кто люди в message_group. Вы знаете лучший способ для этого? –

Смежные вопросы