2014-10-12 5 views
0

Я использую laravel рамки. Я установил пару routes, которые принимают параметр, такой как example.com/route/{dir_name}. Когда я перехожу в каталог, в котором есть дети, он считает это еще одним маршрутом. Есть ли способ обойти его?Laravel routing выпуск

Я использую этот код:

Route::get('/route/something/{path}',array('as'=>'something',function($path){ 
    return $path; 
})); 

Когда я использую /route/something/home/user/dev он бросает Symfony\Component\HttpKernel\ Exception\NotFoundHttpException исключение.

ответ

1

Вы можете попробовать использовать ограничения для параметра маршрута с регулярным выражением.

Route::any('/route/{dir_name}', function ($dir_name) { 
    return $dir_name; 
})->where('dir_name', '.*'); 

Смотрите раздел DOCS о route parameters, в частности, "Регулярные выражения Constraints маршрута" часть.

+0

leme проверка, похоже, будет работать! – Prakhar

+0

и: D он сделал работа! – Prakhar

+0

Прохладный, рад узнать :) – borfast

0

Вы example.com/route/{dir_name}

Я предполагаю, что маршрут определен в routes.php

Route::get('/route/{dir_name}', [ 
    'as' => 'someRoute', 
    'uses' => '[email protected]' 
]); 

В файле SomeController.php вы бы этот метод, который принимает в {} dIR_NAME

public function index($dir_name) { 
return $dir_name; 
} 

Вместо вас есть маршрут

Route::get('/route/something/{path}',array('as'=>'something',function($path){ 
    return $path; 
})); 

/путь/что-то/{путь}

Если вы хотите что-то в вашем URL, то он должен быть в пути. Вот почему вы получаете NotFoundHttpException

+0

это не сработает – Prakhar

+0

Вставьте свой полный файл в маршрут. Позвольте мне посмотреть, могу ли я помочь – arkhamDev

+0

Я просто хочу передать некоторые каталоги на мой url like/route/{dir-here}, но когда laravel встречает «/» в пути, он считает это маршрутом, так как мне его остановить от этого> – Prakhar