cakePHP-模型,不带约定的控制器/成员返回null

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

我对cakePHP有一个问题

这是我的模型:

<?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'));
    }
   } 
 ?>