laravel 4 — Route :: controller — неиспользуемые параметры

У меня есть этот маршрут в приложении Laravel 4:

Route::controller('about','AboutController');

Когда я иду в http://website/about/imprint Я получаю отпечаток, но когда я иду в http://website/about/imprint/12345 , (который не используется в контроллере) Я также получаю отпечаток. Это не выдает ошибку.

Это проблема? Должен ли я как-то поймать его и показать ошибку 404, или это не имеет значения?

Я могу даже пойти в http://website/about/imprint/7/7/7/7 например, без получения сообщения об ошибке.

AboutController выглядит так:

<?php
class AboutController extends BaseController
{
public function getIndex()
{
return View::make('about');
}

public function getImprint()
{
return View::make('imprint');
}

public function getDatenschutz()
{
return View::make('datenschutz');
}
}

1

Решение

Я предпочитаю использовать что-то подобное для моих маршрутов:

Route :: get (‘/ about / imprint’, ‘AboutController @ getImprint’)

Но это только мое мнение. С этим синтаксисом он автоматически дает исключение NotFoundHTTPException для чего-то подобного ‘/ about / imprint / 7/7/7/7/7/7/7’, поэтому вам не нужно проверять это.

Теперь, если вам нужны дополнительные вещи, у вас может быть другой маршрут для этого, например:

Route :: get (‘/ about / imprint / {id}’, ‘AboutController @ getImprint’) -> where (‘id’, ‘[0-9] +’);

Тогда getImprint () будет выглядеть так:

function getImprint($id){
// can only get here if id is a number (based on where clause)
}
1

Другие решения

Что-нибудь после imprint/ передается в ваш getImprint() функционировать как аргументы. Это можно увидеть, изменив функцию getImprint () для вывода аргументов, например так:

public function getImprint() {
return "Imprint <br />Args: " . print_r(func_get_args(), true);
}

затем http://website/about/imprint/12345 вернул бы страницу, которая выглядит так:

Imprint
Args: Array ( [0] => 12345 )

а также http://website/about/imprint/7/8/9/10 вернул бы страницу, которая выглядит так:

Imprint
Args: Array ( [0] => 7 [1] => 8 [2] => 9 [3] => 10 )
1

По вопросам рекламы [email protected]