Динамическая маршрутизация фреймворка Fat Free не работает

Я пытаюсь получить переменную из URL-адреса для передачи в контроллер

URL выглядит так http://example.org/MyCategory или http://example.org/MyCategory-1

Моя БД содержит таблицу для всех категорий, которая включает столбец category_slug

Маршрут GET /@category_slug = MainController->CategorySlug

У моего основного контроллера есть метод, который должен обрабатывать это, который должен вызывать метод getBySlug() из модели категорий.

Главный контроллер

function CategorySlug($category_slug){
    $categories = new Categories($this->db);
    $cat = $categories->getBySlug($category_slug);

    $this->f3->set('categories',$cat);
    echo \Template::instance()->render('index.html');
}

Категории Модель

public function getBySlug($category_slug)
{
    $this->load(array('category_slug=?', $category_slug));
    return $this->query;
}

Как видно из приведенного выше кода, я передаю переменную $category_slug, но получаю ошибку


person AlexB    schedule 12.07.2017    source источник


Ответы (1)


@AlexB, какую ошибку вы получаете?

Однако вам нужно взять переменную из URL-адреса, прежде чем передавать ее своим методам;

$category_slug = $this->f3->get('PARAMS.category_slug')
person Francis Lubanga    schedule 12.07.2017
comment
Я добавил это напрямую в свой контроллер, и это сработало, но не уверен, будет ли это правильным способом сделать это или нет? - person AlexB; 12.07.2017
comment
Это. Ваша единственная ошибка состояла в том, что вы ожидали, что CategorySlug() получит напрямую $category_slug. Фактически он получает 1) экземпляр фреймворка 2) параметры маршрута: CategorySlug($f3,$params). См. раздел fatfreeframework.com/3.6/routing-engine#RoutesandTokens. - person xfra35; 12.07.2017