jkartem
Новичок
Спасибо за ответы. Вопрос все равно висит...
Вот код контроллера из которого вызывается sub контроллер:
А вот код второго контроллера, внутреннего:
Что не так?
Вот код контроллера из которого вызывается sub контроллер:
PHP:
class Controller_Articles extends Controller_Common
{
// Главная страница
public function action_index()
{
$id = $this->request->param('id');
if($id)
{
$content = View::factory('/pages/article')
->set('article', $id)
->bind('comments',$comments);
$comments_url = 'comments/' . $id;
// Вот прямо здесь вызывается sub controller
$comments = Request::factory($comments_url)->execute();
}
else
{
$content = View::factory('/pages/articles');
}
$this->template->content = $content;
}
}
PHP:
class Controller_Comments extends Controller {
public function action_index()
{
$id = $this->request->param('id');
if(Request::initial() === Request::current())
HTTP::redirect(URL::site('articles/' . $id));
if($_POST)
{
$_POST = Arr::map('trim', $_POST);
$post = Validation::factory($_POST);
$post -> rule('user', 'not_empty')
-> rule('user', 'min_length', array(':value', 2))
-> rule('user', 'max_length', array(':value', 20))
-> rule('email', 'email')
-> rule('message', 'not_empty')
-> rule('message', 'max_length', array(':value', 100));
if($post -> check())
{
Model::factory('Comment')
->create_comment($article_id, $_POST['user'], $_POST['message']);
// При таком редиректе, основной контроллер вызывается, а внутренний нет (как-будто исчез)
$uri = Request::detect_uri();
$this->redirect('/' . $uri);
}
else
$errors = $post -> errors('validation');
}
$content = View::factory('/comments/show')
->bind('comments', $comments)
->bind('errors', $errors);
$this->response->body($content);
}
} // Comments
Последнее редактирование: