[英]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.