2015-05-05 4 views
2

У меня есть URL, как это:удалить часть сегмента от URL-адреса Laravel

http://example.com/en/search 

Теперь я хочу, чтобы проверить первый сегмент URL как

$lang = Request::segment(1); 

И я хочу, чтобы удалить $ lang, если он соответствует определенным условиям. Я retieving URL, как этот

$url = Request::fullUrl(); 

Теперь я хочу, чтобы восстановить URL, чтобы что-то вроде этого

http://example.com/search 

Пожалуйста, обратите внимание, что я не могу использовать str_replace, потому что он ищет во всех частях URL, я просто хотите выполнить поиск и заменить в первом сегменте.

ответ

0

Попробуйте что-то вроде:

$str = 'http://example.com/en/search'; 
$part = explode('/',$str,5); 

if ($part[3] == 'en') { 
    $url = $part[0].'//'.$part[2].'/'.$part[4]; 
} else { 
    $url = $str; 
} 

echo '$url:['.$url.']'; // http://example.com/search 
4

Если вы просто хотите, чтобы сделать быструю проверку, а затем удалить первый сегмент и перенаправлять пользователя, вы можете легко сделать, например, (для Laravel 5):

$segments = Request::segments(); 
$first = array_shift($segments); 
if (some_condition) { 
    return redirect()->to(implode('/', $segments)); 
} 
Смежные вопросы