как сохранять теги?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
dadids
Сообщения: 26
Зарегистрирован: 2014.03.08, 19:47

как сохранять теги?

Сообщение dadids »

Автор поста вводит теги через запятую. Нужно сохранить введеные значени под раздельными записями. Тоесть человек ввел: тег1, тег2 а в базу пишутся две записи
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: как сохранять теги?

Сообщение samdark »

dadids
Сообщения: 26
Зарегистрирован: 2014.03.08, 19:47

Re: как сохранять теги?

Сообщение dadids »

Я понимаю что нужно разделить, но после того ка у меня будет массив названий как с ним быть. Как сохранять каждый тег. Был бы очень признателен если набросаете небольшую абстрактную модель. Ссылка на рецет вообще будет очень полезна. Спасибо
Bloom
Сообщения: 313
Зарегистрирован: 2013.02.25, 12:57

Re: как сохранять теги?

Сообщение Bloom »

Основная проблема всех начинающих программистов - живете посредством рецептов.
Создаем запрос в гугл();
while (код не работает()) {
Открыть ссылку в гугле();
Вставить код();
}
Более опытные программисты читают книги, мануалы, статьи. Пишут решения сами или используют готовые библиотеки, заранее разобравшись в устройстве работы выбранных.

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

По факту: у вас есть массив тегов. Вам нужно через foreach перебрать каждый из них и создать запрос в базу данных. Если у вас есть модель для таблицы тегов - необходимо при каждом переборе создавать новую модель и отправлять на сохранение.
Так-же можно генерировать один запрос и выполнять его. Запрос стиля INSERT INTO ... VALUES(...), (...), (...) http://phpclub.ru/mysql/doc/insert.html
Аватара пользователя
SpiritAbsolute
Сообщения: 187
Зарегистрирован: 2013.12.29, 18:20
Откуда: Калининград
Контактная информация:

Re: как сохранять теги?

Сообщение SpiritAbsolute »

Код: Выделить всё

    $str='tag1, tag2, tag3, tag4';
    $array=explode(',', $str);
    foreach($array as $value){
        $this->dbh->exec("
            INSERT INTO `tags` 
            (`id`, `id_post`, `tags`) 
            VALUES
            ('null', '{$id_post}', '{$value}')
        ");
    }
 
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: как сохранять теги?

Сообщение samdark »

Именно так. Единственное, если для тега есть модель, можно через неё.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: как сохранять теги?

Сообщение maleks »

Чтобы не в цикле в yii2 есть batchInsert.

Вообще то теги - это такая штука, которые сквозные для всех статей, так что нельзя создавать всегда новые, ведь тег мог уже раньше быть в базе.
ram0973
Сообщения: 54
Зарегистрирован: 2010.06.12, 22:18
Откуда: Набережные Челны
Контактная информация:

Re: как сохранять теги?

Сообщение ram0973 »

есть пример тегов из 1-го yii, https://github.com/yiisoft/yii/blob/mas ... ls/Tag.php можно сделать по аналогии
Вот расширение https://github.com/2amigos/yii2-taggable-behavior
Последний раз редактировалось ram0973 2014.07.14, 15:29, всего редактировалось 2 раза.
codrilla
Сообщения: 173
Зарегистрирован: 2013.03.06, 12:24
Откуда: Молдова, Тирасполь

Re: как сохранять теги?

Сообщение codrilla »

http://habrahabr.ru/post/226103/ в этой статье есть пример с тегами
dadids
Сообщения: 26
Зарегистрирован: 2014.03.08, 19:47

Re: как сохранять теги?

Сообщение dadids »

всем спасибо, даже тебе Блум. Что поделаешь вначале мы начинающие такие как ты говоришь. Этот случай не исключение, пригодился вариант который был использован в первом фреймворке(отдельно спасио ram0973 :D ) взял две функции немного подогнал.

Наверно нагло будет тут искать решение другой задачи. Но сейчас ищу удобный виджет для добавления тегов с поддержкой автокомлете.
Bloom
Сообщения: 313
Зарегистрирован: 2013.02.25, 12:57

Re: как сохранять теги?

Сообщение Bloom »

select2 http://ivaynberg.github.io/select2/
Тебе нужно то место, где заголовок Tagging Support
stats
Сообщения: 2
Зарегистрирован: 2014.07.14, 14:40

Re: как сохранять теги?

Сообщение stats »

Можно сразу виджет http://demos.krajee.com/widget-details/select2
dadids
Сообщения: 26
Зарегистрирован: 2014.03.08, 19:47

Re: как сохранять теги?

Сообщение dadids »

Спасибо, виджет попробовал. Не совсем нравится. Щас попробую адаптировать js к jui autocomplete. Спасибо большое.
mickgeek
Сообщения: 957
Зарегистрирован: 2014.05.31, 20:50
Откуда: Санкт-Петербург
Контактная информация:

Re: как сохранять теги?

Сообщение mickgeek »

Можно также попробовать виджет Selectize.js.
ram0973
Сообщения: 54
Зарегистрирован: 2010.06.12, 22:18
Откуда: Набережные Челны
Контактная информация:

Re: как сохранять теги?

Сообщение ram0973 »

mickgeek писал(а):Можно также попробовать виджет Selectize.js.
Я тоже его пробовал, всё отлично работает
Ответить