thinkPHP는 웹 애플리케이션 개발에 사용할 수 있는 MVC(Model-View-Controller) 아키텍처 기반의 PHP 프레임워크입니다. thinkPHP에서는 모듈이라는 개념이 널리 사용됩니다. 일부 복잡한 애플리케이션에서는 서로 다른 모듈 사이를 이동해야 합니다. 이 기사에서는 thinkPHP5.0을 사용하여 모듈 간 점프를 수행하는 방법을 소개합니다.
교차 모듈 점프는 한 모듈의 컨트롤러에서 다른 모듈의 컨트롤러로 점프하는 것을 의미합니다. thinkPHP에서 각 모듈에는 독립적인 컨트롤러와 뷰가 있습니다. 점프하기 전에 라우팅 규칙을 먼저 정의해야 합니다.
thinkPHP5.0에서는 라우팅 규칙을 라우팅 파일(route.php)에서 정의할 수 있습니다. 라우팅 규칙에서 모듈 간 점프를 포함하여 URL 요청에 대한 응답을 정의할 수 있습니다.
라우팅 규칙 정의 형식은 다음과 같습니다.
Route::rule('路由规则','模块/控制器/方法','请求类型');
여기서 라우팅 규칙은 문자열 유형이고 모듈/컨트롤러/메서드는 URL 요청에 대한 응답이며 요청 유형은 HTTP 메소드입니다. 예:
Route::rule('index','index/Index/index','get');
이 규칙은 요청된 URL이 http://www.example.com/index일 때 응답 컨트롤러가 Index 컨트롤러 아래의 인덱스 메서드이고 요청 유형이 get임을 의미합니다.
교차 모듈 점프를 할 때 라우팅 규칙에 밑줄 "_"을 사용하여 모듈 이름을 나타낼 수 있습니다. 예:
Route::rule('jump','admin_模块/控制器/方法','get');
이 규칙은 요청된 URL이 http://www.example.com/jump일 때 응답 컨트롤러가 관리 모듈 아래 컨트롤러의 메서드이고 요청 유형이 get임을 나타냅니다.
라우팅 규칙을 정의한 후 모듈 간에 이동할 수 있습니다.
thinkPHP5.0에서는 시스템에서 제공하는 Url 도우미 기능을 사용하여 모듈 간을 이동할 수 있습니다. Url 도우미 기능은 정의된 라우팅 규칙을 기반으로 해당 URL 주소를 생성할 수 있습니다.
Url 도우미 기능을 사용하는 형식은 다음과 같습니다.
url('路由规则',参数数组);
여기서 라우팅 규칙은 정의된 라우팅 규칙이고 매개변수 배열은 대상 컨트롤러에 전달되는 매개변수 배열입니다.
예를 들어 메인 모듈 인덱스 컨트롤러에서 관리 모듈 아래 사용자 컨트롤러의 추가 메소드로 점프해야 하는 경우 다음과 같이 작성할 수 있습니다.
public function jump(){ // 跳转到admin模块下的User控制器的add方法 $url = url('admin_User/add'); return $this->redirect($url); }
점프할 때 매개변수를 전달해야 하는 경우 두 번째 매개변수 추가에서 URL 도우미 기능을 사용할 수 있습니다. 예를 들어 인덱스 컨트롤러에서는 관리 모듈 아래 사용자 컨트롤러의 편집 메소드로 이동하여 매개변수 id=1을 전달해야 합니다. 다음과 같이 작성할 수 있습니다.
public function jump(){ // 跳转到admin模块下的User控制器的edit方法,并传递参数id=1 $url = url('admin_User/edit',['id'=>1]); return $this->redirect($url); }
대상 컨트롤러에서 다음을 사용할 수 있습니다. input() 함수를 사용하여 매개변수 값을 얻습니다. 예를 들어 User 컨트롤러의 edit 메소드에서 id 매개변수 값을 얻는 코드는 다음과 같습니다.
public function edit(){ // 获取id参数值 $id = input('id'); // 赋值到视图中 $this->assign('id',$id); // 渲染视图 return $this->fetch(); }
이 글에서는 thinkPHP5.0을 사용해 크로스 모듈 점프를 하는 방법을 소개합니다. 점프하기 전에 먼저 라우팅 규칙을 정의한 다음 Url 도우미 기능을 사용하여 점프용 URL 주소를 생성해야 합니다. 대상 컨트롤러에서는 input() 함수를 사용하여 점프할 때 전달된 매개변수 값을 얻을 수 있습니다.
위 내용은 thinkphp5.0에서 모듈을 건너뛰는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!