>  기사  >  PHP 프레임워크  >  thinkphp 컨트롤러에서 메소드를 호출하는 방법

thinkphp 컨트롤러에서 메소드를 호출하는 방법

PHPz
PHPz원래의
2023-04-11 10:33:121734검색

ThinkPHP는 MVC 프레임워크 기반의 PHP 프레임워크로 매우 편리하고 빠른 개발 도구를 제공합니다. 그 중 컨트롤러는 비즈니스 로직 처리와 데이터 상호 작용을 담당하는 매우 중요한 구성 요소입니다. 이 기사에서는 프로그램의 확장성과 유지 관리성을 향상시키기 위해 컨트롤러에서 메서드를 호출하는 방법을 소개합니다.

1. 컨트롤러 만들기

컨트롤러를 사용하기 전에 먼저 컨트롤러를 만들어야 합니다. 사용자 정보의 추가, 삭제, 수정 및 쿼리를 처리하기 위해 UserController를 생성한다고 가정해 보겠습니다. ThinkPHP에서는 다음 명령을 통해 UserController 컨트롤러를 생성할 수 있습니다.

php think make:controller admin/UserController

이 명령은 프로젝트의 "application/Create"에 있습니다. admin/controller" 디렉토리에 UserController라는 컨트롤러가 있습니다. 다음으로 컨트롤러에서 관련 작업을 수행할 수 있습니다.

2. 컨트롤러 메서드 호출

1. 기본 호출

컨트롤러에서 메서드를 정의한 후 컨트롤러에서 직접 메서드를 호출할 수 있습니다. 다음과 같이

namespace app\admin\controller;
use think\Controller;
class UserController extends Controller{
    public function index(){
        return 'user index';
    }

    public function add(){
        return 'user add';
    }

    public function edit($id){
        return 'user edit '.$id;
    }

    public function delete($id){
        return 'user delete '.$id;
    }
}

는 "/admin/User/index", "/admin/User/add", "/admin/User/edit/1" 및 "/admin/User/delete 경로에 액세스하여 호출할 수 있습니다. /1" 각각 UserController 컨트롤러의 해당 메서드입니다.

2. 동일한 컨트롤러의 다른 메서드에 액세스

컨트롤러에서는 "$this->method name()"을 통해 동일한 컨트롤러의 다른 메서드를 호출할 수 있습니다. 다음과 같습니다:

namespace app\admin\controller;
use think\Controller;
class UserController extends Controller{
    public function index(){
        return $this->add();
    }

    public function add(){
        return 'user add';
    }
}

"/admin/User/index" 경로에 액세스하여 UserController 컨트롤러에서 add() 메서드를 호출할 수 있습니다.

3. 다른 컨트롤러의 액세스 방법

"컨트롤러('컨트롤러 이름')"을 통해 새 컨트롤러를 만든 다음 해당 컨트롤러의 메서드를 사용할 수 있습니다. 다음과 같습니다:

namespace app\admin\controller;
use think\Controller;
class UserController extends Controller{
    public function index(){
        $test = controller('Test');
        return $test->index();
    }
}

위 코드에서는 Test라는 새 컨트롤러를 만들고 해당 컨트롤러의 index() 메서드를 호출했습니다.

4. 매개변수를 사용한 메소드 호출

메소드 호출 시 매개변수를 전달하려면 메소드 이름 뒤에 "/parameter 1/parameter 2/.../parameter n"을 추가하여 매개변수를 전달할 수 있습니다. 다음과 같습니다:

namespace app\admin\controller;
use think\Controller;
class UserController extends Controller{
    public function edit($id){
        return 'user edit '.$id;
    }

    public function test(){
        return $this->edit(111);
    }
}

"/admin/User/test" 경로에 액세스하면 UserController 컨트롤러에서 edit($id) 메서드를 호출하고 매개변수 111을 전달할 수 있습니다.

5. 숫자와 가로선을 카멜백으로 변환하는 방법 액세스

ThinkPHP에서는 숫자와 가로선을 카멜백으로 변환하는 방법도 자동으로 호출할 수 있습니다. 다음과 같습니다:

namespace app\admin\controller;
use think\Controller;
class UserController extends Controller{
    public function viewList(){
        return 'user view list';
    }

    public function userList(){
        return 'user list';
    }
}

"/admin/User/view_list" 및 "/admin/User/user_list" 경로에 액세스하면 UserController 컨트롤러에서 각각 viewList() 메서드와 userList() 메서드를 호출할 수 있습니다.

3. 요약

ThinkPHP에서 컨트롤러는 매우 중요한 구성 요소이며 웹 애플리케이션의 개발, 유지 관리 및 확장에 매우 중요한 역할을 합니다. 이 기사에서는 컨트롤러를 생성하고 컨트롤러에서 메서드를 호출하는 방법을 보여주었습니다. 이러한 방법을 통해 프로그램의 확장성과 유지 관리성을 효과적으로 향상시켜 프로그램의 개발 효율성을 더욱 향상시킬 수 있습니다.

위 내용은 thinkphp 컨트롤러에서 메소드를 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.