PHP Как правильно создать URL? - PullRequest
0 голосов
/ 08 октября 2018

Я никогда не понимал, как создавать правильные URL-адреса.Каждый раз, когда я пытаюсь выяснить, должен ли я сделать ? Var = значение или & var = значение , а затем, если ? Var = значение уже существует, тогдаЯ получаю ? 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-адреса?(зная когда использовать? или & и не добавлять существующие значения постоянно, но заменить их, если они уже существуют .

Ответы [ 3 ]

0 голосов
/ 08 октября 2018

В URL должен быть один-единственный ?, который разделяет URI и параметры, остальные пары ключ-значение разделяются &, и если вам нужно передать & or ? в качестве параметра, тогда вам нужно кодировать их.

вы можете передать массив в http_build_query , и он создаст для вас URL

, а в laravel есть url helper функции, вы можете использовать их с легкостью.

0 голосов
/ 08 октября 2018

Laravel поставляется с помощником route, который позволяет вам быстро генерировать URL, передавая имя, под которым вы регистрируете свой маршрут.

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')

В представлении я сгенерируюurl, как это

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

Поскольку вы хотите, чтобы оправдание делало нумерацию страниц, Laravel com со встроенной нумерацией страниц.Если вы хотите разбить что-то в своих представлениях, вы просто должны вызвать функцию paginate в вашей модели, и Laravel обработает весь маршрут для этого.Например, если у вас есть модель Person, вы можете сделать это следующим образом в своем контроллере

$persons = Person::paginate(25)

И в своих представлениях для создания нумерации страниц для этого вам придется выполнить

{{ $persons->links() }} 

И это все

0 голосов
/ 08 октября 2018

Если вы используете Laravel, я думаю, что вы должны использовать некоторые вспомогательные функции:

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

Это создаст URL по имени маршрута и параметрам, Это будет выглядеть так: http://sitename/user/profile?id=1 И выздесь можно найти несколько полезных вспомогательных функций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...