Fuelphp - указатель маршрута с параметрами

Используя Fuelphp, я хотел бы иметь возможность использовать систему URL, аналогичную описанной здесь, в Stackru, чтобы получить доступ к определенным страницам.

Желаемое поведение: -stackru.com/questions -> страница с большим количеством вопросов -stackru.com/questions/1982 -> страница с конкретным вопросом

Вот мой контроллер:

class Controllers_Images extends Controller_Template
{
   public function action_index($id=null)
   {
      if($id)
      {
         //Use Model_Image to find specific image
         //Create appropriate view
      }
      else
      {
         //Use Model_Image to find many images
         //Create appropriate view
      }
   }
}

Я могу получить доступ к "общей" странице с mysite.com/images/ - это направлено на action_index функция. Я могу получить доступ к "конкретной" странице с mysite.com/images/index/1, То, что я хотел бы сделать, это иметь возможность пропустить index и в этом случае, чтобы mysite.com/images/1 работает. Прямо сейчас я получаю 404. Как мне настроить маршрутизацию для этого?

1 ответ

Решение

Пройдя немного побольше, я нашел решение, которое отлично работает:

class Controllers_Images extends Controller_Template
{
   public function action_index()
   {
      //Use Model_Image to find many images
      //Create appropriate view
   }
   public function get_id($id)
   {
      //Use Model_Image to find specific image
      //Create appropriate view
   }
}

В routes.php:

return array(
   'images/(:num)'=>'images/id/$1',
   //other routing stuff...
);

При такой настройке URL "mysite.com/images/1" теперь отображает выбранное изображение соответствующим образом, как если бы вместо него использовалось "mysite.com/images/id/1". Не так уж и много, но это приятный интерфейс, что важно!

Другие вопросы по тегам