Laravel 프레임 워 크 경로 와 MVC 인 스 턴 스 상세 설명

6199 단어 Laravel경로MVC
본 논문 의 사례 는 Laravel 프레임 워 크 경로 와 MVC 를 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
1.경로
경로 의 역할 은 사용자 의 서로 다른 url 요청 을 해당 프로그램 에 전송 하여 처리 하 는 것 입 니 다.laravel 의 경 로 는 routes 폴 더 에 정의 되 어 있 으 며,기본적으로 네 개의 경로 파일 을 제공 합 니 다.그 중에서 웹.phop 파일 은 기본 페이지 요청 을 정의 합 니 다.
1.1 기본 경로
가장 기본 적 인 경로 요청 은 get 과 post 요청 입 니 다.laravel 은 Route 대상 을 통 해 서로 다른 요청 방식 을 정의 합 니 다.예 를 들 어 url 을'req'로 정의 하 는 get 요청 은 문자열'get response'를 되 돌려 줍 니 다.

Route::get('req',function (){
  return 'get response';
});

get 으로 요청 할 때http://localhost/Laravel/laravel52/public/req시,다음 과 같이 되 돌려 줍 니 다.

마찬가지 로 post 요청 을 정의 할 때 사용 합 니 다Route::post(url,function(){});1.2 다 중 요청 경로
여러 요청 방식 을 동일 하 게 처리 하려 면 match 나 any 를 사용 하 십시오.
match 를 사용 하여 대응 하 는 요청 방식 과 일치 합 니 다.예 를 들 어 get 이나 post 로 req 2 를 요청 할 때 match response 를 되 돌려 줍 니 다.

Route::match(['get','post'],'req2',function (){
  return 'match response';
});

any 는 임의의 요청 방식 과 일치 합 니 다.예 를 들 어 임의의 방식 으로 req 3 를 요청 하고 any response 를 되 돌려 줍 니 다.

Route::any('req3',function (){
  return 'any response';
});

1.3.요청 매개 변수
필수 매개 변수:매개 변수 형식 으로 요청 을 보 낼 때 경로 에서 받 을 수 있 습 니 다.큰 괄호 로 매개 변 수 를 묶 고/분할 할 수 있 습 니 다.예 를 들 어:

Route::get('req4/{name}/{age}', function ($name, $age) {
  return "I'm {$name},{$age} years old.";
});

get 요청 시 매개 변 수 를 전달 합 니 다.결 과 는 다음 과 같 습 니 다.

선택 가능 한 매개 변수:이상 의 매개 변 수 는 필수 입 니 다.만약 에 특정한 매개 변수 가 부족 하면 오 류 를 보고 할 수 있 습 니 다.만약 에 특정한 매개 변 수 를 선택 하 기 를 원한 다 면 하 나 를 추가 할 수 있 습 니까?기본 값 을 설정 합 니 다.기본 매개 변 수 는 마지막 매개 변수 여야 합 니 다.그렇지 않 으 면 중간 에 두 면 식별 할 수 없습니다.

Route::get('req4/{name}/{age?}', function ($name, $age=0) {
  return "I'm {$name},{$age} years old.";
});

정규 검사:요청 한 매개 변 수 를 where 를 통 해 검사 할 수 있 습 니 다.

Route::get('req4/{name}/{age?}', function ($name, $age=0) {
  return "I'm {$name},{$age} years old.";
})->where(['name'=>'[A-Za-z]+','age'=>'[0-9]+']);

1.4.경로 그룹
때때로 우리 의 길 은 여러 개의 등급 이 있 을 수 있 습 니 다.예 를 들 어 1 급 길 은 home 이 고 그 아래 에는 2 급 길 은 article,comment 등 이 있 습 니 다.이것 은 article 와 comment 를 home 이라는 그룹 에 넣 어야 합 니 다.배열 키 prefix 를 통 해 article 에 접 두 사 를 추가 합 니 다 home:

Route::group(['prefix' => 'home'], function () {
  Route::get('article', function () {
    return 'home/article';
  });
});

이렇게 하면 홈/article 을 통 해 이 경로 에 접근 할 수 있 습 니 다.
1.5.경로 이름
경로 이름 을 지어 야 할 때 도 있 습 니 다.경 로 를 정의 할 때 as 배열 키 를 사용 하여 경로 이름 을 지정 해 야 합 니 다.예 를 들 어 홈/comment 를 comment 라 고 명명 하고 url 을 생 성하 고 방향 을 바 꿀 때 루트 의 이름 comment 를 사용 할 수 있 습 니 다.

Route::get('home/comment',['as'=>'comment',function(){
  return route('comment');    //  route    comment   url
}]);

출력http://localhost/Laravel/laravel52/public/home/comment
2.컨트롤 러
route 루트 는 요청 에 대한 분배 전환 만 하고 구체 적 인 업무 논 리 는 컨트롤 러 가 처리 해 야 하 며 컨트롤 러 는 일반적으로 php 클래스 로 봉 인 됩 니 다.컨트롤 러 의 파일 은 일반적으로 app/Http/controlers 폴 더 아래 에 놓 여 있 습 니 다.예 를 들 어 로그 인 컨트롤 러 클래스 를 새로 만 들 고 로그 인 요청 에 응답 하 는 checkLog 방법 을 정의 합 니 다.

namespace App\Http\Controllers;
class LoginController extends Controller
{
  public function checkLog($name){
    return $name.'    ';
  }
}

route.php 에서 login 요청 을 checkLog 방법 으로 할당 합 니 다:

Route::get('login/{name}','LoginController@checkLog');


마찬가지 로 컨트롤 러 경로 의 이름 을 지 을 수 있 습 니 다.예 를 들 어 login 이 라 고 명명 할 수 있 습 니 다.

Route::get('login/{name}',['uses'=>'LoginController@checkLog','as'=>'login']);

3.보기
controller 는 응용 논 리 를 처리 하고 응용 디 스 플레이 는 보기 View 가 책임 집 니 다.이것 은 MVC 에서 서로 다른 논리 간 의 분 리 를 나 타 냅 니 다.보 기 는 보통/resource/views 디 렉 터 리 에 있 습 니 다.보통 controller 파일 은 보기 폴 더 에 대응 하기 때문에 제 가 만 든 보 기 는 views/Login/login.blade.php 입 니 다.blade 파일 은 laravel 의 템 플 릿 엔진 으로 PHP 로 컴 파일 되 어 저 장 됩 니 다.HTML 언어 를 포함 하고 있 습 니 다.예 를 들 어 login.blade.php 를 직접 사용 할 수 있 습 니 다.

<!DOCTYPE Html>
<html>
  <head>
    <title>    </title>
  </head>
  <body>
    {{$name}}    
  </body>
</html>

controller 의 checkLog 방법 에서 보 기 를 호출 하고 인 자 를 입력 합 니 다:

public function checkLog($name){
  return View('Login/login',[
    "name"=>$name
  ]);
}

4.템 플 릿
화면 음악 c 에서 Models 와 데이터베이스 에 있 는 표를 통 해 상호작용 을 하고 모든 데이터 베 이 스 는 하나의 Model 템 플 릿 에 대응 합 니 다.laravel 은 models 디 렉 터 리 를 정의 하지 않 았 습 니 다.일반적으로 app 디 렉 터 리 에 models 폴 더 를 새로 만들어 템 플 릿 파일 을 저장 할 수 있 습 니 다.예 를 들 어 Student 템 플 릿 을 정의 하고 표 이름과 홈 키 를 지정 합 니 다.

namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
  protected $table='student';
  protected $primaryKey='id';
}

controller 에서 Student 템 플 릿 을 통 해 모든 것 을 조회 합 니 다:

namespace App\Http\Controllers;
use App\Models\Student;
class Login
{
  public static function showDB(){
    $table=Student::all();
    dd($table);
  }
}

Laravel 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 는 Laravel 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기