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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: select по id
СообщениеДобавлено: 15 ноя 2012, 19:52 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 23 июл 2012, 21:58
Сообщения: 100
Доброго времени суток.
С добавлением материала и валидацией, вроде, разобрался.
Стала задача редактирования материала.
Вывожу списком->в конце кнопка едит, по ней делаю select:
Код:
$query = DB::select()->from('projects')->where('id','=',$id);
$result = $query->execute()->as_array();

ID вроде как передается, и получаю вот такой результат:
Код:
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Test Project
            [key] => 1000000000000001
            [date] => 0000-00-00 00:00:00
            [status] =>
            [client] => 25
            [manage] => 26
        )

)

Как избавить от массива в массиве, что бы получить такое:
Код:
Array
        (
            [id] => 1
            [name] => Test Project
            [key] => 1000000000000001
            [date] => 0000-00-00 00:00:00
            [status] =>
            [client] => 25
            [manage] => 26
        )

Думаю ладно, загоню в foreach всю форму, все равно массив то один, но после сабмита получаю такое:
Код:
Array
(
    [name] => Array
        (
            [0] => Test Project
        )

    [client] => Array
        (
            [0] => 25
        )

    [manage] => Array
        (
            [0] => 26
        )

)

Попробовал свалидировать:
Код:
if (isset($_POST)) {
            $name = Arr::get($_POST, 'name');
            $name_ = $name[0]; $vData['name'] = $name_;
            $client = Arr::get($_POST, 'client');
            $client_ = $client[0]; $vData['client'] = $client_;
            $manage = Arr::get($_POST, 'manage');
            $manage_ = $manage[0]; $vData['manage'] = $manage_;
            $validation = Validation::factory($vData)
                    ->rule('name','not_empty')
                    ->rule('name_','not_empty')
                    ;
            if($validation->check()) {
            } else {
                $errors = $validation->errors('projectedit');
            }
        }

изврат какой то. Не сработало.
Как избавиться от массива в массиве при select-е?
Или как свалидировать все это добро?
Подскажите кто что знает.
С уважением, Роман.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: select по id
СообщениеДобавлено: 15 ноя 2012, 21:44 
Не в сети
Бывалый

Зарегистрирован: 02 июн 2012, 07:14
Сообщения: 69
Код:
$result = $query->execute()->as_array();

Нужно заменить на
Код:
$result = $query->execute()->current();

А вот про пост и валидацию не понял, откудова они тут взялись вообще? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: select по id
СообщениеДобавлено: 15 ноя 2012, 22:14 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 23 июл 2012, 21:58
Сообщения: 100
Благодарю, помогло.
Про пост:
Я добавлял материал, валедируя данные, то есть ситуацию отработал.
Далее нужно стало редактировать материал. Рядышком с записью вывел кнопку с ее ID.
Кликаю и перехожу в контроллер редактирования, передавая селектом данные текущей записи.
Но как писал выше, я получал странный массив. Дотумкать/найти решения не получилось.
Показал как пытался сделать, что не тупо спросить зашел, и спросил совета.
А то я хотел уже так делать, выбрать нужные данные по отдельности:
Код:
        $query = DB::select()->from('projects') ->where('id','=',$id);
        $result = $query->execute()->get('name');

Код:
        $query = DB::select()->from('projects') ->where('id','=',$id);
        $result = $query->execute()->get('client');

Код:
        $query = DB::select()->from('projects') ->where('id','=',$id);
        $result = $query->execute()->get('manage');

Но вы предложили истинно верное решение!


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

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


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

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


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

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