簡體   English   中英

PHP 如何正確創建網址?

[英]PHP How to create urls properly?

我一直不明白如何創建正確的 URL。 每次我最終試圖弄清楚我是否應該做?var=value&var=value ,然后如果?var=value已經存在,那么我最終會得到?var=value&var=value

PS 我正在與 Laravel 合作。 所以也許有一個內置函數?

例如:我有分頁,我的 URL 可能如下所示

www.example.com OR
www.example.com?name=John

然后我的分頁鏈接是href="?page=2"最終得到

www.example.com?name=John?page=2

然后我想使用href="?page=3"導航到下一頁,我最終得到了這個。 因為它一直在添加。

www.example.com?name=John?page=2?page=3

真是一團糟.... 是否有 PHP 或 Laravel 的函數可以創建正確的 URL? (知道何時使用 ? 或 &而不是一直添加現有值,而是在它們已經存在替換它們

如果您使用的是 Laravel,我認為您應該使用一些輔助函數:

route('user.profile', ['id' => 1]);

它將通過路由名稱和參數創建 url,它看起來像: http://sitename/user/profile?id=1你可以在這里找到一些有用的幫助函數

應該只有一個? 在分隔 URI 和參數的 URL 中,其余的鍵值對由&分隔,如果您需要傳遞& or ? 作為參數,那么您需要它們進行編碼

您可以將數組傳遞給http_build_query ,它會為您構建 url

在 Laravel 中有url 輔助函數,您可以輕松使用它們。

Laravel 帶有一個route助手,它允許你通過傳遞你注冊路由的名稱來快速生成 url。

Route::get('/', 'HomeController@index')->name('home.route')

在這里你可以看到我將home.route傳遞給 name 方法,這是我用於這條路線的名稱。 當我想在我的視圖中為該路由生成 URL 時,我會做

{{ route('home.route') }}

如果 ny 路線采用一些這樣的參數

Route::get('/person/{id}', 'HomeController@index')->name('home.route')

鑒於我將生成這樣的網址

{{ route('home.route', ['id' =>$id]) }}

因為你想要 juste 進行分頁,所以 Laravel 提供了一個內置的分頁。 當你想在你的視圖中分頁時,你必須在你的模型上調用paginate函數,laravel 會處理所有的路由。 例如我你有一個Person模型你可以在你的控制器中這樣做

$persons = Person::paginate(25)

並且在您的視圖中生成分頁,您將不得不這樣做

{{ $persons->links() }} 

就這樣

暫無
暫無

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

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