Добрый день! Помогите пожалуйста разобраться с роутингом в фреймворке 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>
На 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);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ошибка как я понимаю здесь
ЗдравствуйтеХочу реализовать пагинацию при помощи redbean php, мой код который выводит из бд первую и последнюю страницу и который должен выводить...
Я получаю число типа floatНесмотря на тип, дробная часть есть не всегда