cakePHP-模型,不带约定的控制器/成员返回null
我对cakePHP有一个问题 这是我的模型:cakePHP-模型,不带约定的控制器/成员返回null,php,cakephp,Php,Cakephp,我对cakePHP有一个问题 这是我的模型: <?php class Veranstaltung extends AppModel { var $name = 'Veranstaltung'; var $useTable = 'veranstaltungen'; } ?> 这是我的控制器: <?php class VeranstaltungenController extends AppController { var $name = 'Veran
<?php
class Veranstaltung extends AppModel
{
var $name = 'Veranstaltung';
var $useTable = 'veranstaltungen';
}
?>
这是我的控制器:
<?php
class VeranstaltungenController extends AppController
{
var $name = 'Veranstaltungen';
public function index()
{
$this->set('veranstaltungen',$this->Veranstaltung->find('all'));
}
}
?>
但是$this->Veranstaltung
返回null
如何解决这个问题?您不需要
var$name='Veranstaltungen'代码>在控制器中
还要确保数据库配置正确吗
然后试试这个:
$this->loadModel("Veranstaltungen");
$this->set('veranstaltungen',$this->Veranstaltung->find('all'));
您忘记在控制器中包含您的模型。执行此操作时,请在控制器中添加$uses
字段,该字段为数组类型
:
class VeranstaltungenController extends AppController
{
public $uses = array('Veranstaltung');
public function index()
{
$this->set('veranstaltungen',$this->Veranstaltung->find('all'));
}
}
如果仍然存在问题,则可能需要使用
App::uses('Veranstaltung', 'Model');
在控制器类定义之前
请忘记var
keyboard,因为它只是为了向后兼容PHP4
为了保持与PHP4的向后兼容性,PHP5将
仍然接受在属性声明中使用关键字var
而不是(或除了)public
、protected
或private
。然而,
不再需要var。在从5.0到5.1.3的PHP版本中
使用var
被视为不推荐使用,并将发出E_严格的
警告,但自PHP5.1.3以来,它不再被弃用,也不再被使用
发出警告
在控制器中尝试您不需要var$name='Veranstaltungen';在你的控制器里。您是否已对数据库进行了poperly配置?是的,数据库是正确的。请不要使用您的本地语言编程,而是使用英语!这不仅是因为它在全世界几乎都是这样做的,而且在这个特定的案例中,它也是至关重要的,因为CakePHP用于根据约定计算名称的屈折因子仅适用于英语单词!我之前已经这样做了,但我的雇主希望用我们的语言:)正如你所看到的,模型的名称是“Veranstaltung”$use in controller应该自动加载这个模型。@Fury但是按照惯例,控制器应该有名称VeranstaltungsController
,而不是VeranstaltungsController
,不是吗?是的。我没有看到这个var$使用的复数“s='Veranstaltungen';这是不对的。如果他想在$use中增加更多的型号,那怎么办?
<?php
class VeranstaltungenController extends AppController
var $uses = array('Veranstaltungen');
public function index()
{
$this->set('veranstaltungen',$this->Veranstaltung->find('all'));
}
}
?>