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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: снова, бд,запрос
СообщениеДобавлено: 22 апр 2012, 00:58 
Не в сети
Бывалый

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
mamahtehok писал(а):
Все потому, что Вы не определяете эту переменную, а только объявляете.

Всмысле?Мля((((, нервы, я должен её как определить ?


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

Зарегистрирован: 16 апр 2012, 19:44
Сообщения: 113
прошу прощения я просмотрел
Код:
$krut = Model::factory('Maddurl')->get_all();


Я правильно понимаю, что до отправки action_index работает верно, а при отправки выдает ошибку?


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

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
mamahtehok писал(а):
прошу прощения я просмотрел
Код:
$krut = Model::factory('Maddurl')->get_all();


Я правильно понимаю, что до отправки action_index работает верно, а при отправки выдает ошибку?

Да вывод делает все отлично, но когда делаю отправку вылетает эта ошибка, обновляю страницу, ошибка ушла,а запись появилась.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: снова, бд,запрос
СообщениеДобавлено: 22 апр 2012, 04:27 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Во-первых, кусок со вставкой записи нужно поставить в начало метода, а не в конец. Потому что незачем производить все действия по выводу объявлений и лишний раз напрягать сервер, если потом все равно произойдет вставка и страница перезагрузится.
Во-вторых, после вставки записи нужно поставить редирект на эту же страницу. Это кстати убережет от дубликатов объявлений, когда особо ретивые юзеры жмут F5 или Обновить.

И еще, мне не совсем понятно:
Код:
$content = View::factory('/pages/show')
                ->bind('krut', $krut);

...

$addurl = View::factory('/addurl');

...

$addcontent = View::factory('addurl')
         ->bind('krut', $krut);


Что это за каша ? Для чего создавать две разные переменные с шаблоном addurl. И для чего биндить $krut и в /pages/show, и в addurl. Он что в обоих шаблонах используется ?

_________________
kohanaframework.su - обучение фреймворку Kohana


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

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
Такой вид приобретет код ?
Код:
   // Главная страница
    public function action_index()
    {
        $content = View::factory('/pages/show')
                ->bind('krut', $krut);
        $krut = Model::factory('Maddurl')->get_all();   
        $this->template->content = $content;
        $recomsite = View::factory('/recomsite');
        $this->template->recomsite = $recomsite;
       
        if($_POST)
{
 
// Используем хелпер Arr, зря учили чтоли :)
    $answer = Arr::get($_POST, 'inputsite');

    // Тут проверка, допустим юзер должен ввести хоть один символ
    if(trim($answer) != '')
    {
     $krut = Model::factory('Maddurl')->insert($answer);
        echo "Отправлено";
    }
    else
   {
        echo "Нет нет, я не отправил. Введите хоть чего-нибудь";
    }
}
                //Добавление адреса
        $addcontent = View::factory('addurl')
         ->bind('krut', $krut);
        $this->template->addcontent = $addcontent;
       
 
    }

С Редиректом я позже разберусь, пока с ним не знаком.
Код:
$content = View::factory('/pages/show')
                ->bind('krut', $krut);

-$content
Выводит данные из БД. Как в этом уроке.
http://kohanaframework.su/database/model_create

Код:
$addurl = View::factory('/addurl');

-$addurl удалил, был лишняя.
Код:
 $addcontent = View::factory('addurl')
         ->bind('krut', $krut);

$addcontent эта работа с формой, т.е мы для него записываем методы отправки и вывод в шаблон самого вида. Вроде как то так. Проблемы с циклом, из за $addcontent?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: снова, бд,запрос
СообщениеДобавлено: 22 апр 2012, 16:51 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
if($_POST)
Вообще в самый верх метода нужно написать.
И я бы еще добавил $krut = array(); т.к. в виде идет перебор массива

Цитата:
$addcontent эта работа с формой, т.е мы для него записываем методы отправки и вывод в шаблон самого вида. Вроде как то так. Проблемы с циклом, из за $addcontent?

Я вообще не понял, зачем в форму передавать список объявлений $krut. Вы что их в двух местах выводите ?

Поскриптум: Вообще это очень хорошо, что вы пытаетесь сами что-то написать. Когда я выложу свой практический урок, думаю, вы сразу разберетесь. Это очень полезно, когда мучаешься пару дней над задачей, потом кто-то показывает как надо и сразу все осознаешь :)

_________________
kohanaframework.su - обучение фреймворку Kohana


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

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
admin писал(а):
if($_POST)
Вообще в самый верх метода нужно написать.
И я бы еще добавил $krut = array(); т.к. в виде идет перебор массива

Цитата:
$addcontent эта работа с формой, т.е мы для него записываем методы отправки и вывод в шаблон самого вида. Вроде как то так. Проблемы с циклом, из за $addcontent?

Я вообще не понял, зачем в форму передавать список объявлений $krut. Вы что их в двух местах выводите ?

Поскриптум: Вообще это очень хорошо, что вы пытаетесь сами что-то написать. Когда я выложу свой практический урок, думаю, вы сразу разберетесь. Это очень полезно, когда мучаешься пару дней над задачей, потом кто-то показывает как надо и сразу все осознаешь :)

Спасибо,вы тоже извините, что нервирую))) Просто пока есть время, хочется изучать).
Я не понял про $krut .
Код:
$content = View::factory('/pages/show')
                ->bind('krut', $krut);
        $krut = Model::factory('Maddurl')->get_all();   
        $this->template->content = $content;

- Эта часть,у меня выводит записи из БД;

Код:
$addcontent = View::factory('addurl')
         ->bind('krut', $krut);
        $this->template->addcontent = $addcontent;

-А эти строчки,тоже работают с БД. ('addur') - вид. bind - эта работа с БД,правда я сам не могу понять нужен ли он тут, просто я че то черпал из примеров.
Код так что ли должен выглядеть:
Код:
public function action_index()
    { 
        $content = View::factory('/pages/show')
                ->bind('krut', $krut);
        $krut = Model::factory('Maddurl')->get_all();   
        $this->template->content = $content;
        $recomsite = View::factory('/recomsite');
        $this->template->recomsite = $recomsite;
       
     
         
{
     $krut = array();
 
// Используем хелпер Arr, зря учили чтоли :)
    $answer = Arr::get($_POST, 'inputsite');

    // Тут проверка, допустим юзер должен ввести хоть один символ
    if(trim($answer) != '')
    {
     $krut = Model::factory('Maddurl')->insert($answer);
        echo "Отправлено";
    }
    else
   {
        echo "Нет нет, я не отправил. Введите хоть чего-нибудь";
    }
} if($_POST)
                //Добавление адреса
        $addcontent = View::factory('addurl')
         ->bind('krut', $krut);
        $this->template->addcontent = $addcontent;
       
 
    }

Не пойму перед какими методами ставить if, если в моем случае, то у меня ошибка:
Код:
$this->template->addcontent = $addcontent;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: снова, бд,запрос
СообщениеДобавлено: 22 апр 2012, 19:23 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Bind - это не работа с БД :)
Внимательно перечитайте урок
http://kohanaframework.su/starting/view_2

Bind хорош тем, что если в методе set переменные должны быть определены до вызова фабрики View::factory, то здесь можно их определять после.

_________________
kohanaframework.su - обучение фреймворку Kohana


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

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
admin писал(а):
Bind - это не работа с БД :)
Внимательно перечитайте урок
http://kohanaframework.su/starting/view_2

Bind хорош тем, что если в методе set переменные должны быть определены до вызова фабрики View::factory, то здесь можно их определять после.

Спасибо перечитаю,но подскажите в чем проблема в цикле ? Как мне её решить?
Код:
<?php foreach($krut as $maddurls): ?>

$krut - не инициализирована.


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

Зарегистрирован: 18 фев 2012, 12:10
Сообщения: 57
Откуда: Украина, Киев
@AzEXx, дак задайте переменную $krut.

Если у вас форич выдает ошибку, значит переменная $krut не является массивом.
Вы бы посмотрели что пишется в $krut, после этого действия Model::factory('Maddurl')->insert($answer).

Пытайтесь самостоятельно решить возникающие проблемы, а не писать каждый раз на форум. Отладка в данном фрейворке достаточно хорошая.

Примите это не как обиду в вашу сторону, а как совет.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

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


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

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


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

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