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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Взаимодействие между экшенами
СообщениеДобавлено: 10 июл 2013, 22:53 
Не в сети
Зеленый

Зарегистрирован: 10 июл 2013, 22:41
Сообщения: 1
Привет всем. Имеется страница с кнопками редактирования записи и создания новой записи. Раньше действия этих кнопок были описаны в экшене для этой страницы. Хочу вынести действия кнопок в отдельный экшн. Как мне это организовать? кнопки ведь находятся на одной странице, а для экшена, я так понимаю отдельный вид нужен...Объясните, пожалуйста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие между экшенами
СообщениеДобавлено: 11 июл 2013, 00:42 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
Всё зависит от архитектуры контроллера, допустим в случае с примером из "коробочки" Controller_Template это не так.

Но проблема скорее в другом: обработка данных должна вестись в модели, контроллер просто передает в нее данные и потом передает результаты в вид. При таком подходе код контроллера будет легко читаемым и не придется при изменениях в модели переписывать и контроллер.

Если так хочется, то можно допустим вызывать из одного экшена другой:
Код:
public function action_index()
{
   if($this->request->param('delete'))
   {
      $this->action_delete();
   }
}

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие между экшенами
СообщениеДобавлено: 11 июл 2013, 20:03 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
WinterSilence писал(а):
Код:
public function action_index()
{
   if($this->request->param('delete'))
   {
      $this->action_delete();
   }
}



Или так:
Код:
public function action_index()
{
    if($this->request->param('delete'))
    {
        parent::action_delete();
    }
}
 


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие между экшенами
СообщениеДобавлено: 11 июл 2013, 21:06 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
Sergey> не не не, погоди, запутаешь так только

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие между экшенами
СообщениеДобавлено: 12 июл 2013, 15:33 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
:)


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

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


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

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


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

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