хм....
естественно, я как "умная" хотела сделать всё красиво, вынесла действие на обработку страницы с предварительным просмотром акта приёма в отдельный экшн и естественно он не срабатывает т.к. роуты у меня привязаны к именам акшенов. спустя сутки меня осенило, что вообще-то так не делаю...
а вот теперь вопрос "на миллион" ) куда прикрутить эти действия в один экшн. я сделала через if,elseif,else ну естественно всё равно не срабатывает.
мои творения см. ниже:
public function action_form()
{
$zakaz_id = $this->request->param('id');
//обработка данных введённых в форму
if($_POST)
{
$_POST = Arr::map('trim', $_POST);
$post = Validation::factory($_POST);
$post -> rule('customer_id', 'not_empty')
-> rule('apparat_id', 'not_empty');
if($post -> check())
{
Model::factory('Getin')->create_zakaz(
$_POST['date_in'],
$_POST['customer_id'],
$_POST['apparat_id'],
$_POST['made_id'],
$_POST['sn'],
$_POST['model'],
$_POST['broken'],
$_POST['view']);
Session::instance()->set('message', 'Заказ добавлен в базу');
$uri = Request::detect_uri('/getin');
Request::initial()->redirect($uri);
}
//elseif для предварительного просмотра перед печатью
//'btnd'-кнопка "печать акта приёма"
elseif(isset($_POST['btnd']))
{
$data = Arr::extract($_GET, array('zakaz_id','data_in', 'customer_id',
'apparat_id', 'made_id', 'sn', 'model', 'broken', 'view'), 'нет данных для печати');
$this->request->redirect('/printd/dogovor/');
}
//обработка ошибок ввода данных
else
{
Session::instance()->set('error', 'Ошибка!');
$errors = $post -> errors('getin');
}
}
$zakaz = Model::factory('Getin')->get_zakaz($zakaz_id);
//!--start для предварительного просмотра
$zakaz->write($data);
$view = $zakaz->read();
//!--end для предварительного просмотра
//блок лбработки массивов данных для выпадающих списков
$apparats = array();
$mades = array();
$masters = array();
$customers = array();
$content = View::factory('getinview') //вид формы
->bind('zakaz', $zakaz) //переменная для принятия данных в основную таблицу
->bind('errors', $errors) //ошибки валидации
->bind('apparats', $apparats) //переменная для работы с выпадающим списком
->bind('mades', $mades) //переменная для работы с выпадающим списком
->bind('masters', $masters) //переменная для работы с выпадающим списком
->bind('customers', $customers) //переменная для работы с выпадающим списком
->bind('zakaz', $view)//переменная для предварительного просмотра
;
//блок обработки данных для работы с выпадающими списками
$apparat = new Model_Getin();
$apparats = $apparat->get_apparat();
$made = new Model_Getin();
$mades = $made->get_made();
$master = new Model_Getin();
$masters = $master->get_master();
$customer = new Model_Getin();
$customers = $customer->get_customer();
$this->template->content = $content;
}
//А ВОТ ТАК Я СНЧАЛА ВИДЕЛА ОБРАБОТКУ ДАННЫХ ДЛЯ СТРАНИЦЫ ПРЕДВАРИТЕЛЬНОГО ПРОСМОТРА
/* public function action_dogovor()
{
$dogovor = Model::factory('Getin')->get_zakaz($zakaz_id);
elseif(isset($_POST['btnd']))
{
$data = Arr::extract($_GET, array('zakaz_id','data_in', 'customer_id',
'apparat_id', 'made_id', 'sn', 'model', 'broken', 'view'), 'нет данных для печати');
$this->request->redirect('/printd/dogovor/');
}
$dogovor->write($data);
$view = $dogovor->read();
$content = View::factory('dogovor')
->bind('dogovor', $view);
}*/
}