本文概述
在先前的Hello World示例中, 我们的方法名称为index()。默认情况下, Controller始终调用索引方法。如果要使用其他方法, 则将其写入Controller的文件中, 并在调用函数时指定其名称。
看URL, 没有提到方法名称。因此, 默认情况下会加载索引方法。
除index()以外的方法
在这里, 我们提到了一种称为newFunction()的方法。现在我们必须调用此新方法来运行我们的程序。
在应用程序/控制器中创建一个控制器页面Hello.php。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Hello extends CI_Controller {
public function newfunction()
{
$this->load->view('hello_world');
}
}
?>
看上面的快照, 我们创建了一个函数newFunction。
在application / views中创建一个视图页面hello_world.php。
<!DOCTYPE html>
<html>
<head>
<title>Hello World Example</title>
</head>
<body>
<p>Hello World!!</p>
</body>
</html>
要在我们的浏览器上运行此程序, 请遵循路径
http://localhost/CodeIgniter/index.php/Hello/newFunction
查看上面的快照, 我们将Controller的函数创建为newFunction, 并在Controller的名称后的URL中指定了它。
在这里, / index.php / Hello是控制器的名称。
/ newFunction是函数名称。
重新映射方法调用
URI的第二部分确定正在调用哪个方法。如果要覆盖它, 可以使用_remap()方法。
如果你在控制器中提到了_remap()方法, 则即使URI不同, 也将始终调用该方法。它覆盖URI。
public function _remap($methodName)
{
if ($methodName === 'a_method')
{
$this->method();
}
else
{
$this->defaultMethod();
}
}