我从不了解如何创建正确的URL。每次最终我试图弄清楚是否应该执行?var = value 或&var = value ,然后再执行?var = value 已经存在,那么我最终会得到?var = value&var = value 。
P.S。我正在与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的函数? (知道何时使用?或&并不会一直添加现有值,而是如果已经存在则替换它们。
答案 0 :(得分:0)
如果您使用Laravel,我认为您应该使用一些辅助功能:
route('user.profile', ['id' => 1]);
它将通过路由名称和参数创建url,如下所示: http://sitename/user/profile?id=1 并且您可以找到一些有用的辅助函数here
答案 1 :(得分:0)
URL中应该只有一个?
,用于分隔URI和参数,其余键/值对由&
分隔,如果您需要将& or ?
传递为参数,那么您需要encode。
您可以将数组传递给http_build_query,它将为您构建网址
并且在laravel中有url helper个函数,您可以轻松使用它们。
答案 2 :(得分:0)
Laravel带有route
帮助器,可通过传递用于注册路线的名称来快速生成网址。
Route::get('/', 'HomeController@index')->name('home.route')
在这里您可以看到我将 home.route 传递给name方法,这是我用于此路由的名称。当我想在该视图中生成该路线的URL时,我会这样做
{{ route('home.route') }}
如果ny route采用这样的参数
Route::get('/person/{id}', 'HomeController@index')->name('home.route')
在视图中,我将生成这样的网址
{{ route('home.route', ['id' =>$id]) }}
由于您想让分页,Laravel在分页中碰到了麻烦。当您想对视图中的内容进行分页时,必须仅在模型上调用paginate
函数,而laravel将处理所有的路由。例如,我有一个Person
模型,您可以在控制器中像这样
$persons = Person::paginate(25)
在您看来要生成分页,您将必须这样做
{{ $persons->links() }}
仅此而已