Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 15:56

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: ORM и checkbox
СообщениеДобавлено: 07 мар 2013, 13:12 
Не в сети
Бывалый

Зарегистрирован: 11 июл 2012, 22:36
Сообщения: 41
Есть массив с выбранными checkboxsами
Нужно записать в таблицу subscriptions где два столбца
subscription_user_id и subscription_category
Я с ORM пытаюсь разобраться и попробовал сделать так


Код:
$categories_post = $_POST['category'];
$model = ORM::factory('subscription');

foreach($categories_post as $category_post)
{
   $model ->values(array('subscription_user_id' => $user_id, 'subscription_category' =>  $category_post));
}
$model->save();

Запись в таблице появляется одна сохраняется только последний элемент массива

Подскажите как сохранить все элементы ведь наверняка это просто )
Я что то туплю


Последний раз редактировалось merlin 08 мар 2013, 20:02, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ORM и checkbox
СообщениеДобавлено: 08 мар 2013, 08:41 
Не в сети
Бывалый

Зарегистрирован: 09 авг 2012, 13:17
Сообщения: 43
может метод. save в цикл вставить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ORM и checkbox
СообщениеДобавлено: 08 мар 2013, 13:49 
Не в сети
Бывалый

Зарегистрирован: 11 июл 2012, 22:36
Сообщения: 41
Нет не получается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ORM и checkbox
СообщениеДобавлено: 09 мар 2013, 00:35 
Не в сети
Бывалый

Зарегистрирован: 11 июл 2012, 22:36
Сообщения: 41
Получилось только так

Код:
$categories_post = $_POST['category'];
$model = ORM::factory('subscription');

foreach($categories_post as $category_post)
{
$model = ORM::factory('subscription')
   ->set('subscription_user_id', 1)
   ->set('subscription_category', $category_post)->save();
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ORM и checkbox
СообщениеДобавлено: 09 мар 2013, 10:10 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Код:
<?php defined("SYSPATH") or die("No direct script access.");

$post = ORM::factory('subscription');

// Проходимся по массиву subscriptions
//
// в вашем представлении это должно быть что то вроде
// Form::checkbox('subscriptions['.$id.']', ..., ...)
foreach(array_keys($_POST['subscriptions']) as $subscription)
{
    $post->values(
        array(
          'subscription_user_id'  => $user_id,
          'subscription_category' => $category_post
        )
    );
}

try
{
    // Сохраняем значения
    $post->save();

    // Перенаправление и уведомление об успехе
}
catch (ORM_Validation_Exception $e)
{
    // Обработка ошибок
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ORM и checkbox
СообщениеДобавлено: 11 мар 2013, 12:09 
Не в сети
Бывалый

Зарегистрирован: 11 июл 2012, 22:36
Сообщения: 41
Sergey писал(а):
Код:
<?php defined("SYSPATH") or die("No direct script access.");

$post = ORM::factory('subscription');

// Проходимся по массиву subscriptions
//
// в вашем представлении это должно быть что то вроде
// Form::checkbox('subscriptions['.$id.']', ..., ...)


Наверняка ваше решение более грамотное я
боюсь показаться тупым, но что не понял, как пройтись по массиву)
На всякий случай inputы выкладываю, таких там несколько штук
Код:
<input type="checkbox" name="category[]" value="Категория такая">
<input type="checkbox" name="category[]" value="Категория сякая">

Не могли бы вы более подробно ответить заранее благодарю


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ORM и checkbox
СообщениеДобавлено: 12 мар 2013, 02:24 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Совсем тонкостей ваших я не знаю,
но подозреваю, что в представлении вам нужно использовать примерно такой формат:
Код:
<?php foreach($categories as $id => $category): ?>
    <?php echo Form::checkbox('categories['.$id.']', $category, FALSE) . $category;  ?>
<?php endforeach; ?>


Далее при получении формы через $_POST в фориче проходитесь по массиву categories:
Код:
foreach(array_keys($_POST['categories']) as $category)
{
   ...
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group