Ответ 1
Попробуй это
{{ Request::segment(1) }}
У меня есть url: http://localhost:8888/projects/oop/2
Я хочу получить доступ к первому сегменту → projects
Я пробовал
<?php echo $segment1 = Request::segment(1); ?>
Я ничего не вижу в своем представлении, когда обновляю свою страницу.
Любые советы/подсказки будут высоко оценены
Попробуй это
{{ Request::segment(1) }}
Двойные фигурные скобки обрабатываются с помощью Blade - не просто PHP. Этот синтаксис в основном выражает вычисленное значение.
{{ Request::segment(1) }}
Вот как это можно сделать с помощью глобальной вспомогательной функции request
.
{{ request()->segment(1) }}
Примечание: request()
возвращает объект класса Request
.
НА ОСНОВЕ LARAVEL 5.7 & ВЫШЕ
Чтобы получить все сегменты текущего URL: $ current_uri = request() → сегменты(); Получить Сегмент {сообщения} от http://example.com/users/posts/latest/
/**NOTE: segments are an array ie starts from 0 and are a section of the uri
after the base url(hppt://example.com)*/
//assuming current url == http://example.com/users/posts/latest/
//get segment 0
$segment_users = request()->segments(0);//returns 'users'
//get segment 1
$segment_posts = request()->segments(1);//returns 'posts'
Возможно, вы заметили, что метод сегмента (-ов) работает только с текущим URL (url()->current()
), поэтому я разработал небольшой метод для работы с предыдущим URL-адресом, клонировав метод segments()
:
public function index()
{
....
$prev_uri_segments = $this->prev_segments(url()->previous());//array
}
/**
* Get all of the segments for the previous uri.
*
* @return array
*/
public function prev_segments($uri)
{
$segments = explode('/', str_replace(''.url('').'', '', $uri));
return array_values(array_filter($segments, function ($value) {
return $value !== '';
}));
}
Вот код, который вы можете получить сегмент URL.
{{ Request::segment(1) }}
Если вы не хотите, чтобы данные были экранированы, используйте {!! !!} еще используйте {{}}.
{!! Request::segment(1) !!}