이 글은 Laravel 5.2(코드 포함)에서 HTTP 라우팅, 컨트롤러 생성 및 리소스 라우팅에 대한 소개를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
1. HTTP 라우팅
모든 경로는 AppProvidersRouteServiceProvider 클래스에 의해 로드된 app/Http/routes.php 파일에 정의됩니다.
1. 기본 라우팅
간단한 Laravel 라우팅은 URI와 클로저만 허용합니다
Route::get('foo', function () { return 'Hello, Laravel!'; });
일반적인 HTTP 요청의 경우 Laravel에는 다음과 같은 경로가 있습니다
Route::get($uri, $callback); //响应 get 请求 Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback); Route::match(['get', 'post'], $uri, $callback); //响应 get, post 请求 Route::any('foo', $callback); //响应所有请求
그 중 $callback은 클로저가 될 수 있습니다. 또한 컨트롤러 방법이 될 수 있습니다. 실제로 개발 중에는 컨트롤러 메서드가 사용되는 상황이 많이 있습니다.
2. 라우팅 매개변수
//单个路由参数 Route::get('user/{id}', function ($id) { return 'User '.$id; }); //多个路由参数 Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // }); //单个路由参数(可选) Route::get('user/{id?}', function ($id = 1) { return 'User '.$id; }); //多个路由参数(可选) Route::get('posts/{post}/comments/{comment?}', function ($postId, $commentId = 1) { // }); //注意:多个参数时,只可以对最后一个参数设置可选,其他位置设置可选会解析错误 // 正则约束单个参数 Route::get('user/{name?}', function ($name = 'Jone') { return $name; })->where('name', '\w+'); //约束参数为单词字符(数字、字母、下划线) // 正则约束多个参数 Route::get('user/{id}/{name}', function ($id, $name) { // })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
2. 컨트롤러 생성
Artisan 명령을 사용하여 php artisan make:controller UserController
이제 컨트롤러 디렉토리 app/Http/Controllers 컨트롤러 파일에 UserController.php가 생성됩니다. .
3. 고급 라우팅
1. 명명된 경로
//命名闭包路由 Route:get('user', array('as' => 'alial', function(){}); //或 name 方法链 Route:get('user', function(){})->name('alias'); //命名控制器方法路由 Route:get('user', array('uses' => 'Admin\IndexController@index', 'as' => 'alias')); //或 name 方法链 Route:get('user', 'Admin\IndexController@index')->name('alias'));
2. 경로 그룹화
2.1 경로 접두사 및 네임스페이스
예를 들어 컨트롤러 메서드를 가리키는 두 가지 경로가 있습니다.
Route::get('admin/login', 'Admin\IndexController@login'); Route::get('admin/index', 'Admin\IndexController@index');
말하자면,
매개변수 1: admin/login은 이 URI가 웹사이트의 루트 디렉터리에 있는 admin/login 리소스를 요청하고 있음을 의미합니다. 전체 주소는 http://domain name/admin/login입니다(Apache의 라우팅 재라우팅은 다음과 같습니다). 여기에서 "index.php"를 숨기고 작성하면 이 요청은 두 번째 매개변수에 지정된 컨트롤러 메서드에 매핑됩니다. 웹사이트 루트 디렉터리는 항목 파일이 위치한 디렉터리이며, 이는 Laravel의 공용 디렉터리이므로 서버를 구성할 때 여기를 가리키는 것이 가장 좋습니다.
매개변수 2: AdminIndexController@login은 이 컨트롤러 메서드가 AppHttpControllers 네임스페이스에 있고 연결이 AppHttpControllersAdminIndexController 컨트롤러의 로그인 메서드임을 의미합니다.
분명히 두 경로의 URI와 컨트롤러 메서드는 동일한 부분을 갖습니다. 그런 다음 경로 그룹화를 활성화하면 공통 부분을 추출할 수 있습니다.
// 第一个数组参数中,prefix 键定义 URI 的公共部分,namespace 键定义方法名(命名空间语法)的公共部分 Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); });
2.2 리소스 라우팅
리소스 라우팅은 리소스 제어에 매핑됩니다. Laravel 리소스 컨트롤러에는 리소스를 추가, 삭제, 수정 및 확인하는 7가지 메소드와 7가지 경로가 내장되어 있습니다.
먼저 리소스 컨트롤러 ArticleController를 생성합니다
php artisan make:controller Admin/ArticleController --resource
이렇게 하면 app/Http/Controllers/Admin/ArticleController.php 파일에 리소스 컨트롤러가 생성됩니다(Admin 폴더가 없으면 자동으로 생성됩니다). 7개가 내장되어 있습니다. 방법은 다음과 같습니다.
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class LinksController extends Controller { /** * 显示一个资源的列表 * * @return \Illuminate\Http\Response */ public function index() { // } /** * 显示一个表单来创建一个新的资源 * * @return \Illuminate\Http\Response */ public function create() { // } /** * 保存最新创建的资源 * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * 显示一个表单来编辑指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * 更新指定的资源 * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * 删除指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
그런 다음 리소스 경로를 정의합니다. 여기서는 여전히 라우팅 그룹 아래에 정의하기로 선택했습니다. 하나만 정의하면 됩니다.
Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); // 资源路由 Route::resource('article', 'ArticleController'); });
마지막으로 경로를 확인하세요. 리소스 컨트롤러와 리소스 라우팅을 사용하면 위 7가지 메서드에 대한 HTTP 요청 메서드를 살펴볼 수 있습니다.
Artisan 명령 php artisan Route:list를 사용하여 요청 메소드, URI, 컨트롤러 메소드 및 미들웨어를 포함한 모든 현재 경로를 나열하십시오.
위 내용은 HTTP 라우팅 소개, Laravel5.2에서 컨트롤러 및 리소스 라우팅 생성(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 강력한 Laravel Restful API를 구축하는 사람들을 안내합니다. 프로젝트 설정, 리소스 관리, 데이터베이스 상호 작용, 직렬화, 인증, 인증, 테스트 및 중요한 보안 모범 사례를 다룹니다. 확장 성 도전 해결

이 기사는 작곡가를 사용하여 최신 Laravel 프레임 워크를 설치하기위한 포괄적 인 안내서를 제공합니다. 전제 조건, 단계별 지침, 일반적인 설치 문제 (PHP 버전, 확장, 권한) 및 Minimu에 대해 자세히 설명합니다.

이 기사는 Laravel-Admin 사용자에게 메뉴 관리를 안내합니다. Laravel의 저자를 사용한 사용자 역할 및 권한을 기반으로하는 메뉴 사용자 정의, 대규모 메뉴 (분류, 모듈화, 검색) 및 동적 메뉴 생성을 다룹니다.

이 기사는 Laravel에서 OAUTH 2.0 인증 및 승인을 구현하는 자세한 내용입니다. 리그/OAUTH2-SERVER 또는 제공자 별 솔루션과 같은 패키지를 사용하여 데이터베이스 설정 강조, 클라이언트 등록, 인증 서버 Configu

이 기사는 Laravel 개발자가 올바른 버전을 선택하도록 안내합니다. 안정성 및 보안을위한 최신 장기 지원 (LTS) 릴리스를 선택하는 것의 중요성을 강조하면서 최신 버전이 고급 기능을 제공한다는 것을 인정합니다.

이 기사에서는 Laravel에서 사용자 정의 검증 규칙을 작성하고 사용하여이를 정의하고 구현하는 단계를 제공합니다. 재사용 성과 특이성과 같은 이점을 강조하고 Laravel의 검증 시스템을 확장하는 방법을 제공합니다.

이 기사는 클라우드 네이티브 환경에서 Laravel을 배포하기위한 모범 사례에 대해 설명하고 확장 성, 신뢰성 및 보안에 중점을 둡니다. 주요 문제로는 컨테이너화, 마이크로 서비스, 무국적 설계 및 최적화 전략이 포함됩니다.

이 기사는 구성 요소를 사용하여 Laravel에서 재사용 가능한 UI 요소를 작성하고 사용자 정의하여 조직을위한 모범 사례를 제공하고 패키지 강화를 제안합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
