簡體   English   中英

如何在 Laravel 5 中訪問刀片中的 URL 段?

[英]How to access URL segment(s) in blade in Laravel 5?

我有一個網址: http://localhost:8888/projects/oop/2

我想訪問第一段 --> projects

我試過了

<?php echo $segment1 = Request::segment(1); ?>

刷新頁面時,我在視圖中看不到任何打印內容。


任何幫助/建議將不勝感激

嘗試這個

{{ Request::segment(1) }}

雙大括號是通過 Blade 處理的——不僅僅是普通的 PHP。 此語法基本上與計算值相呼應。

{{ Request::segment(1) }} 

基於 Laravel 5.7 及以上

獲取當前 URL 的所有段:

$current_uri = request()->segments();

http://example.com/users/posts/latest/獲取分段posts

注意:段是從索引 0 開始的數組。數組的第一個元素在 url 的 TLD 部分之后開始。 所以在上面的 url 中,segment(0) 是users ,segment(1) 是posts

//get segment 0
$segment_users = request()->segment(0); //returns 'users'
//get segment 1
$segment_posts = request()->segment(1); //returns 'posts'

您可能已經注意到,segment 方法僅適用於當前 URL ( url()->current() )。 所以我設計了一種方法來通過克隆segment()方法來處理以前的 URL:

public function index()
{
    $prev_uri_segments = $this->prev_segments(url()->previous());
}

 /**
 * 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 !== '';
    }));
}

下面是如何通過全局request幫助函數來做到這一點。

{{ request()->segment(1) }}

注意: request()返回的是Request類的對象。

這是您可以獲得 url 段的代碼。

{{ Request::segment(1) }}

如果您不想轉義數據,請使用 {!! !!} 否則使用 {{ }}。

{!! Request::segment(1) !!}

https://laravel.com/docs/4.2/requests

獲取第一個或最后一個段的簡單方法,以防您不確定路徑長度。

$segments = request()->segments();
$last  = end($segments);
$first = reset($segments);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM