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/comment2.컨트롤 러
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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
단순 Laravel+Vue.js에서 VueUI를 사용하여 로그인 및 등록Laravel에는 웹 팩과 같은 Laravel-Mix가 있는데, 이를 이용해서 Laravel에 Vue.js를 실현할 수 있다. 이번에는 몇 가지 명령을 통해 간단하게 VueUI로 로그인하여 로그인을 할 수 있습니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.