Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
берем трубку, обещаем перезвонить
class Controller_Articles extends Controller_Overall {
public function action_list ($args = array()) {
$form = Arr::extract($_REQUEST, array('title', 'content'));
$errors = isset($form['title']) ? $this->try_add_article($form) : null;
$view = new View('articles_list');
$view->articles = ORM::factory('article')->order_by('id', 'DESC')->find_all();
$view->form = $form;
$view->errors = $errors ? new Helper_View_Notification(__('Adding article failed'), $errors) : '';
$view->user = $this->user;
$this
->set_title(__('Articles list'))
->set_content($view);
}
protected function try_add_article (array $form) {
if ($this->user) {
$article = Model::factory('article')->values($form);
if ($article->check()) {
$article->author = $this->user;
$article->save();
$this->request->redirect('/'); // exit here;
}
return $article->validate()->errors('article');
}
}
public function action_get ($id = null) {
if (!$id) $this->request->redirect('/');
$view = new View('article');
$view->article = ORM::factory('article', (int) $id);
$this
->set_title($view->article->title)
->set_content($view);
}
}
if (Kohana::$profiling === TRUE)
{
// Start a new benchmark
$benchmark = Profiler::start('Kohanut', __FUNCTION__);
}
// Make sure $page is set and loaded
if (!is_object(self::$page) || !self::$page->loaded())
{
return "Kohanut::main_nav failed because page is not loaded";
}
Вообще да, ищу :-D
Друзья: Nicolette
Про 1: коммент, например, такой: «TODO: возвращать корректный HTTP код ошибки»
А при ошибке в добавлении статьи у вас ведь тоже так.
if ($article->check()) {
$article->save();
$this->request->redirect('/'); // exit here;
}
return $article->validate()->errors('article');
<компонент> <табуляция> <описание проблемы в произвольном стиле в объёме достаточном для того, чтобы я сам вспомнил, прочитав это позднее>Перерывы дробят ваш рабочий день. 45 минут работы – и затем вы разговариваете по телефону. Еще 15 минут – и вам пора на обед. Спустя еще час вы спешите на послеобеденное совещание. В результате на часах уже шесть вечера, и у вас была всего пара часов без перерывов, чтобы делать свое дело. Вы не можете вершить важные дела в режиме «старт – остановка, старт – остановка».
Программист, который отвлекается