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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 06 дек 2012, 00:24 
Не в сети
Бывалый

Зарегистрирован: 29 сен 2012, 00:30
Сообщения: 65
Откуда: Рига, Латвия
ivanovbl4 писал(а):
Может мне нужно еще несколько роутов написать?

В принципе, нет ничего страшного в том, что у вас будет 10 роутов, хотя сейчас вам не нужно писать дополнительные роуты - вам хватает стандартного. Просто надо помнить, что если что вдруг - то можно смело писать отдельный роут для конкретного случая.
Что косается вашей проблемы, то AmberLEX абсолютно прав - смотрите по какому адресу форма отправляет данные - какое у нее значение атрибута action в фаиле
Код:
$view = View::factory('edit/edit_city');


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 07:57 
Не в сети
Новичок

Зарегистрирован: 04 дек 2012, 07:58
Сообщения: 15
Извиняюсь за свою тупость :roll: , но я сначала не так вопрос понял. Отвечаю: форма отправляет данные прямиком в метод "edit":
Код:
<form name="edit_city" method="post" action="edit">


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 08:07 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 05 июн 2012, 03:08
Сообщения: 213
Ага в edit)
http://htmlbook.ru/html/form/action
Ctrl + U нажмите и посмотрите путь, который в форме прописан.

_________________
http://de-en.info (работает на Kohana 3.3)


Последний раз редактировалось AmberLEX 06 дек 2012, 08:25, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 08:14 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 05 июн 2012, 03:08
Сообщения: 213
Может все-таки попробуете как я написал здесь viewtopic.php?f=31&t=487#p2676

_________________
http://de-en.info (работает на Kohana 3.3)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 08:27 
Не в сети
Новичок

Зарегистрирован: 04 дек 2012, 07:58
Сообщения: 15
Сейчас буду пробовать все предложенные вами варианты, а потом отпишусь.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 08:52 
Не в сети
Новичок

Зарегистрирован: 04 дек 2012, 07:58
Сообщения: 15
Статью по адресу: http://htmlbook.ru/html/form/action прочитал. Когда-то давно html изучал - писал в action путь к файлу обработчику, а потом когда начал кохану изучать мне сказали что можно сразу название метода писать и не замарачиваться с полным путем. Ну я так и сделал, просто название метода прописал и забыл про это.
Выходит что мне сейчас нужно прописать в action путь к обработчику, т.е. к контроллеру city?
И я скопипастил этот код:
Код:
<?php echo Form::open(Request::current()) ?>
, нажал Ctrl + U и вот что мне показали:
Код:
<form action="/city/edit/1" method="post" accept-charset="utf-8">


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 09:30 
Не в сети
Новичок

Зарегистрирован: 04 дек 2012, 07:58
Сообщения: 15
Написал в action название файла обработчика: city.php и просто city и полный путь к файлу писал. В общем в этом случае выдает ошибку что роут не найден. А если прописать как раньше, метод, то ошибок нет, но проблема то все равно остается.
Думаю что нужно попробовать разделить метод "edit" на два метода: один будет при запросе записи заполнять поля формы соответствующими данными, а другой - проверять измененные данные полей(валидация) и обновлять соответствующую запись в базе. Может и прокатит. Надо пробовать в общем.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 09:50 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 05 июн 2012, 03:08
Сообщения: 213
Цитата:
Когда-то давно html изучал

н-да...

Путь верный - /city/edit/1
Если в bootstrap.php прописать
Код:
Kohana::init(array(
   'base_url'   => 'http://example.com' // ваш путь к сайту
));
то будет полный путь http://example.com/city/edit/1 (ну это значения не имеет)
city - controller
edit - action
1 - id редактируемой записи,
Это совпадает с вашим роутом.
Методом ->save() если записи с id = 1 нет в БД - запись создается, если есть - редактируется.

Может стоит с html, php начать, а не с коханы?

_________________
http://de-en.info (работает на Kohana 3.3)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 10:17 
Не в сети
Новичок

Зарегистрирован: 04 дек 2012, 07:58
Сообщения: 15
Цитата:
Может стоит с html, php начать, а не с коханы?
php я тоже изучал. А перед ним Pascal. Ну это так, для информации. Кохану 2,5 месяца уже изучаю.
Цитата:
Методом ->save() если записи с id = 1 нет в БД - запись создается, если есть - редактируется.
Это я знаю. У меня в базе записей от 1 до 10. Если например запросить id = 1 и изменить запись в полях формы, нажать сохранить, то по идее запись просто должна измениться(обновиться), а у меня после нажатия кнопки, добавляется 11-ая запись в конец таблицы. Вот я и не пойму почему запись добавляется, а не изменяется ведь запись с id = 1 есть у меня в базе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2012, 10:56 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 05 июн 2012, 03:08
Сообщения: 213
После первого
Код:
$c = ORM::factory('city',$parameters['id']);
      if ( ! $c->loaded())
         throw new HTTP_Exception_404();

Уберите
Код:
              $city = ORM::factory('city', $parameters['id']);
               if ( ! $city->loaded()) die('Город с id="'.$parameters['id'].'" не найден!');

Замените
Код:
               $c->name = $_POST['name'];
               $c->about = $_POST['description'];
               $c->save();

Или зачем вам 2 запроса к БД?

_________________
http://de-en.info (работает на Kohana 3.3)


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

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


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

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


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

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