在另一个控制器中调用控制器功能
Call controller function in another controller
我有一个 PermissionController
和下面的 permission()
函数,我想在另一个控制器中调用 permission()
函数。如何将我的 permission()
函数调用到另一个控制器?
这是我的 PermissionController
class PermissionController extends Controller
{
public function permission(){
$checkPermission = User::leftJoin('employees', 'employees.user_id', '=', 'users.id')
->leftJoin('positions', 'employees.position_id', '=', 'positions.id')
->leftJoin('divisions', 'employees.division_id', '=', 'divisions.id')
->where(function($query){
$query->where('division_name', 'Sales')
->orWhere('division_name', '=', 'Project Management')
->orWhere('position_name', '=', 'Dept Head');
})
->get();
}
}
我认为您的功能应该在您的模型之一中,因为您只是在获取价值。
根据 MVC,这将与我更相关。
将它放入您的 User
模型中,您只需一次调用即可在应用程序的每个实例上使用它。
创建新的 Helper(例如 PermissionHelper.php
),然后将函数移动到它并在您想要使用的地方调用它:
PermissionHelper::permission();
希望对您有所帮助。
您可以调用另一个控制器的方法,但这是一种糟糕的做法。将您的代码移至模型并使用以下命令调用它:
class PermissionController extends Controller
{
public function permission()
{
$checkPermission = User::getEmployeePermissions();
}
}
在其他控制器的方法中做同样的事情。
您可以这样调用 PermissionController 的 "permission" 方法:
app(PermissionController::class)->permission();
但是,请注意,此方法根本不是一个好主意。
您有多个可用的重构选项,包括使用助手 class、相关模型上的方法或使用 laravel 作业。
尝试这样做
public function __construct(PermissionController $permission_controller)
{
parent::__construct();
$this->permission_controller = $permission_controller;
}
像这样调用任何方法
$this->permission_controller->permission();
我有一个 PermissionController
和下面的 permission()
函数,我想在另一个控制器中调用 permission()
函数。如何将我的 permission()
函数调用到另一个控制器?
这是我的 PermissionController
class PermissionController extends Controller
{
public function permission(){
$checkPermission = User::leftJoin('employees', 'employees.user_id', '=', 'users.id')
->leftJoin('positions', 'employees.position_id', '=', 'positions.id')
->leftJoin('divisions', 'employees.division_id', '=', 'divisions.id')
->where(function($query){
$query->where('division_name', 'Sales')
->orWhere('division_name', '=', 'Project Management')
->orWhere('position_name', '=', 'Dept Head');
})
->get();
}
}
我认为您的功能应该在您的模型之一中,因为您只是在获取价值。
根据 MVC,这将与我更相关。
将它放入您的 User
模型中,您只需一次调用即可在应用程序的每个实例上使用它。
创建新的 Helper(例如 PermissionHelper.php
),然后将函数移动到它并在您想要使用的地方调用它:
PermissionHelper::permission();
希望对您有所帮助。
您可以调用另一个控制器的方法,但这是一种糟糕的做法。将您的代码移至模型并使用以下命令调用它:
class PermissionController extends Controller
{
public function permission()
{
$checkPermission = User::getEmployeePermissions();
}
}
在其他控制器的方法中做同样的事情。
您可以这样调用 PermissionController 的 "permission" 方法:
app(PermissionController::class)->permission();
但是,请注意,此方法根本不是一个好主意。
您有多个可用的重构选项,包括使用助手 class、相关模型上的方法或使用 laravel 作业。
尝试这样做
public function __construct(PermissionController $permission_controller)
{
parent::__construct();
$this->permission_controller = $permission_controller;
}
像这样调用任何方法
$this->permission_controller->permission();