ПредишенСледващото

Файлове подразбиращи се маршрути

Всички пътища (пътища) Laravel маршрути са определени в файловете, които се намират в каталожните трасета. Тези файлове се зареждат автоматично от рамката. маршрути за вашия уеб-интерфейс, определени в маршрутите / web.php по делото. Тези пътища са част от група от уеб посредници. които предоставят функции, като например състоянието на сесията и CSRF-защита. Маршрути от маршрути / api.php файл не подкрепят държавата и влизат в групата на API посредници.

Повечето приложения първо се дефинират маршрути до маршрути / web.php файл.

routes.php файл е зареден доставчик RouteServiceProvider и автоматично включва в група от уеб посредници. която предоставя достъп до сесия държавни и CSRF-защита. Повечето от вашите пътища за кандидатстване ще бъдат определени в този файл.

Налични методи рутер

Рутерът ви позволява да се регистрирате маршрути за всяка HTTP заявка:

Понякога е необходимо да се регистрирате на маршрута, който отговаря на HTTP заявки от няколко вида. Това може да стане чрез PHP мач (). Или можете да се регистрирате по маршрута, който реагира на HTTP-заявки от всякакъв вид, като се използва методът на PHP всяко ():

регистрация маршрут за няколко вида заявки

Понякога е необходимо да се регистрирате на маршрута, който отговаря на HTTP заявки от няколко вида. Това може да стане чрез PHP мач () Route фасада:

Или можете да се регистрирате по маршрута, който реагира на HTTP-заявки от всякакъв вид, като се използва методът на PHP всяко ():

Можете да генерирате URL за вашето приложение метод за маршрутизиране PHP URL ():

опции за упътвания

Задължителни параметри

Разбира се, понякога може да се наложи да вземете сегментите URI в маршрута си. Например, ако имате нужда да улови потребителско име от адреса. Това може да стане чрез определяне на опциите на маршрута:

Можете да зададете произволен брой параметри:

параметрите на маршрута винаги са затворени в скоби и трябва да се състоят от буквени знаци. параметрите на маршрута не могат да съдържат знака -. Използвайте вместо долна черта _.

Допълнителни параметри на маршрута

Понякога е необходимо да се уточнят параметрите на маршрута, но и да направи присъствието си на ненужни. Това може да стане чрез поставяне на въпросителен знак. след името на параметъра. Не забравяйте да зададете стойността по подразбиране за съответния променлива маршрут:

Ограничения на регулярни изрази

Можете да ограничите параметрите на маршрута формат с помощта на PHP, където () метод на потребителски модел на маршрута. PHP където () метод приема име параметър и регулярен израз, който определя границите на параметъра:

Ако искате опция винаги е бил ограничен от регулярен израз, можете да използвате метод PHP модел (). Трябва да се определят тези шаблони в PHP зареждане () метод на вашия RouteServiceProvider:

CSRF защита

Този раздел се отнася за версии 5.2 и по-рано. Във версия 5.3 той е преместен в отделна статия за CSRF.

Всеки път, когато определянето на HTML форма в кандидатурата си, трябва да го включи в скрито поле CSRF-знак за посредник CSRF защита в състояние да провери заявката. За да генерирате скрит поле за въвеждане _token. съдържа CSRF знак използване подкрепа PHP csrf_field (функция):

PHP csrf_field () функция генерира HTML:

Не е необходимо да се провери ръчно CSRF означение в исканията пост тип, сложи или изтриете. VerifyCsrfToken посредник. която е включена в групата на уеб медиатори. Тя автоматично ще се покажат на входящия искане съвпада с означение на означението съхранява в сесията.

URI изключение на CSRF защита

Понякога е необходимо да се изключи набор от URI от CSRF-защита. Например, когато се използва система за обработка на плащания Stripe и уеб куки, което трябва да се премахнат си маршрут манипулатор уеб куки на CSRF-защита Laravel.

Можете да изключите URI, идентифициране на техните маршрути от банда мрежа от посредници. който е включен в routes.php на файла по подразбиране. или чрез добавяне на URI имота в PHP $ освен посредник VerifyCsrfToken:

X-CSRF-ЛЕКСЕМА

"Пост" Също така търсете ключови CSRF в параметри. VerifyCsrfToken посредник също се проверява за заглавната част на заявката Х-CSRF-означение. Например, можете да съхранявате ключа в таг «мета»:

Когато създадете мета тагове. можете да добавите знак в заглавието на всички заявки с помощта на библиотеката като JQuery. Това осигурява лесна и удобна CSRF защита за вашите приложения, базирани на AJAX:

X-XSRF-ЛЕКСЕМА

Разликата между Х-CSRF-и означение на X-XSRF-означение в това, че първата стойност използва прост текст, а втората - кодираната стойност, тъй като бисквитка в Laravel винаги шифрована. Ако използвате функцията PHP csrf_token () за прехвърляне на основните ценности. тогава вероятно трябва да използвате заглавието на X-CSRF-означение.

модел на свързване

При изпълнението на модел ID на мястото на маршрута или контролера, често е необходимо да се получи модел, който съвпада с идентификатор. Свързването модели - удобен начин да копира автоматично въвеждане на модела направо в профила си маршрути. Например, вместо за вграждане на идентификатора на потребителя, може да приложи цялата копие на модел на потребителя. което съответства на тази ID.

имплицитно задължителен

Laravel автоматично включва Впечатляващо постижение модел е определено в маршрута или регулаторът актове, чиито променливи имат имена, които съответстват на сегмента на маршрут. Например:

В този пример, Laravel автоматично ще вмъкне копие на модела, която има ID, което съвпада със съответната стойност от искането URI, защото променливата потребителя Впечатляващо постижение PHP $. дефинирано в маршрута, същата като URI на сегмента на маршрут. Ако съвпадение модел например една не е намерен в базата данни, HTTP-отговор 404 ще се генерира автоматично.

Ако искате да получите клас модел вместо колона, използва различна колона база данни, можете да замените метода на PHP getRouteKeyName () във вашия модел Впечатляващо постижение:

изрично задължителен

За да се регистрирате изрично метод на свързване с помощта на PHP модел (), за да определите класа на маршрут за този параметър. Трябва да зададете изрично задължителен метод от модела си, PHP зареждане (RouteServiceProvider клас):

Подкрепете проекта - споделете линка, благодаря!