Kohana framework routing

137
05 апреля 2018, 12:27

Добрый день! Помогите пожалуйста разобраться с роутингом в фреймворке Kohana, у меня формируется url такого вида article/view/?id=4 нужно чтобы url был вида /article/name-of-article. В БД создана табличка 'url' с алиасами на транслите

Вот такой контроллер с помощью которого я забираю id

 $id = htmlspecialchars($this->request->query('id'));
    $sql = 'select * from articles where id='.$id;
    $articles = DB::query(Database::SELECT, $sql)->execute()->as_array();
    if (count($articles) == 0) {
        HTTP::redirect('/articles');
    }

И вот так вывожу

<div class="card">
<a href="/article/view?id=<?php echo $id; ?>"><img src="<?php echo $intro_image; ?>" alt="<?php echo $title; ?>" title="<?php echo $title; ?>" /></a>
<h3><a href="/article/view?id=<?php echo $id; ?>"><?php echo $h1; ?></a></h3>
<em><?php echo $changed; ?></em>
<div class="intro"><a href="/article/view?id=<?php echo $id; ?>"><?php echo $intro_text; ?></a></div>
<ul class="tags">
</ul>

Answer 1

На Kohana я бы подобное реализовал следующим образом:

1: Добавил в файл следующий роут-код /application/bootstrap.php:

Route::set('article', '/article/(<name>)')
    ->defaults (
        array (
            'controller' => 'article',
            'action' => 'index',
            'name' => ''
        )
    );

В массиве (параметрах) роута я указал имя файла контроллера article, имя метода index и параметр name по умолчанию.

2: Добавление контроллера application/classes/Controller/Article.php

<?php defined ('SYSPATH') or die('No direct script access.');
class Controller_Article extends Controller
{
    public function action_index()
    {
        // Получаем параметр name из роута
        $name = Request::$initial->param('name');
        // Далее уже можешь делать все что угодно с ним
        // например выводить в шаблон
        $this->template->content = View::factory('article')
            ->set('name', $name);
    }
}
READ ALSO
Не находит класс при изменении Версий php и apache

Не находит класс при изменении Версий php и apache

Проект на локальном ПК Openserver 52

133
red bean php реализация пагинации

red bean php реализация пагинации

ЗдравствуйтеХочу реализовать пагинацию при помощи redbean php, мой код который выводит из бд первую и последнюю страницу и который должен выводить...

257
Проверка на наличие дробной части

Проверка на наличие дробной части

Я получаю число типа floatНесмотря на тип, дробная часть есть не всегда

162