如果与$this->一起使用,会出现错误;负载->view(…但如果我使用echo view(。。。错误是:在空上调用成员函数view((
如果我尝试加载带有$this->负载->型号(…
使用echo view('')
直接输出到浏览器如果您想获得一个视图,例如通过ajax发送,请使用return view('')
这在CI4中是新的,没有更多的$this->load->view('')
请注意,如果执行的最后一行是return view('')
,则它仍然传递给浏览器。
所有这些都适用于模型和库。现在它更多的是OO,而不是拥有一个超级对象。
例如,如果你有一个模型位于App/Models下,在控制器中或你想加载它的地方,在开始时包括名称空间,即use AppModelsMyModel
,然后在你想使用的方法中只创建一个新的类,即
$myModel = new MyModel();
如果你想要一个库助手的实例,例如你模型中的数据库,那么为你的模型做这个构造函数:
protected mixed $db;
public function __construct(ConnectionInterface &$db)
{
$this->db = &$db;
}
在基本控制器initController
方法中放入
$this->db = ConfigDatabase::connect();
现在,当您从扩展BaseController的控制器创建模型的实例时,请传递数据库实例:
$myModel = new MyModel($this->db);
请注意,CI4中的$this
不是指超级对象,而是指控制器实例,即在initController
中加载的任何内容都可以在$this
中找到。CI4中有几个助手和库现在默认加载,例如$this->request->getPost('')
请阅读CI4文档,尤其是如果您习惯了CI3