插件窝 干货文章 thinkphp如何在控制器中调用方法

thinkphp如何在控制器中调用方法

控制器 controller 方法 UserController 767    来源:    2024-10-26

thinkphp是一个基于mvc框架的php框架,它为我们提供了非常方便、快捷的开发工具。其中,控制器是一个非常重要的组成部分,它负责业务逻辑的处理和数据交互。本文将介绍如何在控制器中调用方法,以提高程序的可扩展性和维护性。

一、创建控制器

在使用控制器之前,我们需要先创建一个控制器。假设我们要创建一个UserController,用于处理用户信息的增、删、改、查等业务,在ThinkPHP中,我们可以通过以下命令创建一个UserController控制器:

php think make:controller admin/UserController

此命令将在项目的“application/admin/controller”目录下创建一个名为UserController的控制器。接下来,我们就可以在控制器中进行相关操作了。

二、控制器方法的调用

立即学习“PHP免费学习笔记(深入)”;

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->方法名()”来调用同一控制器中的其他方法。如下:

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.访问其他控制器中的方法

我们可以通过“controller(‘控制器名’)”来新建一个控制器,然后使用该控制器中的方法。如下:

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

上述代码中,我们新建了一个名为Test的控制器,并调用了它的index()方法。

4.带参数的方法调用

如果要在调用方法时传递参数,我们可以在方法名后面添加“/参数1/参数2/…/参数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()方法。

三、总结

在ThinkPHP中,控制器是非常重要的组成部分,对于Web应用的开发、维护、扩展起着非常关键的作用。在本文中,我们介绍了如何创建一个控制器,并在控制器中调用方法。通过这些方法,我们可以有效地提高程序的可扩展性和维护性,使得程序的开发效率得到进一步提高。