如何在PHP的另一个控制器文件中调用函数?

时间:2019-05-21 12:27:07

标签: php codeigniter

我有一个函数需要使用Codeigniter从另一个文件调用,我不确定如何执行此操作。

一个文件位于controllers / Jobassignment.php中,其中包含一个名为createassignments()的函数,我需要从controllers / Reporting.php进行调用。我是Codeigniter的新手,所以如何从Reporting.php调用createassignments函数?

我尝试了

$this->load->library('controllers/jobassignment');
$this->jobassignment->createassignments();

但这不起作用。

它已经在表单标签中被调用:

<form action="<?php echo base_url( 'jobassignment/createassignments' ); ?>

但是我不能在函数中间这样做。

它们都是控制器文件。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

它与Codeigniter无关。如果Jobassignment.php是一个PHP类,则可以为其创建一个实例,然后调用该函数:

user namespace/Jobassignment

$jobassignment = new Jobassignment();

$jobassignment->createassignments();

但是,如果您创建的此方法要在其他类中调用,则必须在Helpers目录下创建一个类,然后按照我的解释调用该方法。

不创建请求类的实例。您必须创建一个辅助课程来处理这个问题。

答案 1 :(得分:0)

如果目标是在另一个控制器中使表单的操作成为方法,那么您的代码

<form action="<?php echo base_url( 'jobassignment/createassignments' ); ?>

很好。您只需要了解您正在执行重定向,就可以在当前控制器中执行代码。了解<form action...>始终是重定向,其中表单的输入元素值发送到服务器。

由于这是重定向,因此没有理由调用$this->load->library('controllers/jobassignment');