CakePHP问题:对非对象调用成员函数find()

CakePHP问题:对非对象调用成员函数find(),php,cakephp,Php,Cakephp,我看过这里,发现有些人也有同样的问题,但这些解决方案似乎都不适合我 现在,我正在尝试向一个网站添加一个新的页面,我已经得到更新(我自己并没有从新网站开始)。现在,由于我的live站点中有相同的表,我将此代码与cakePHP的新副本一起使用。然而,我得到了“在非对象上调用成员函数find()”,我认为这可能与我调用find命令的方式或cakePHP配置文件的方式有所不同 将此添加到my Routes.php: Router::connect('/events', array('c

我看过这里,发现有些人也有同样的问题,但这些解决方案似乎都不适合我

现在,我正在尝试向一个网站添加一个新的页面,我已经得到更新(我自己并没有从新网站开始)。现在,由于我的live站点中有相同的表,我将此代码与cakePHP的新副本一起使用。然而,我得到了“在非对象上调用成员函数find()”,我认为这可能与我调用find命令的方式或cakePHP配置文件的方式有所不同

将此添加到my Routes.php:

         Router::connect('/events', array('controller' => 'events', 'action' => 'eventDetails'));
我的型号代码:

   class Event extends AppModel {
var $name = 'Event';

var $validate = array(
    'id' => array(
        'numeric' => array(
            'rule' => array('numeric'),
            //'message' => 'Your custom message here',
            'allowEmpty' => true,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),
    ),
    'startdate' => array(
        'numeric' => array(
            'rule' => array('numeric'),
            //'message' => 'Your custom message here',
            //'allowEmpty' => false,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),
    ),
    'endate' => array(
        'numeric' => array(
            'rule' => array('numeric'),
            //'message' => 'Your custom message here',
            'allowEmpty' => true,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),
    ),
    'spaces' => array(
        'alphanumeric' => array(
            'rule' => array('alphanumeric'),
            //'message' => 'Your custom message here',
            'allowEmpty' => true,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),
    ),
    'info' => array(
        'alphanumeric' => array(
            'rule' => array('alphanumeric'),
            //'message' => 'Your custom message here',
            'allowEmpty' => true,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),
    ),
    'info' => array(
        'alphanumeric' => array(
            'rule' => array('alphanumeric'),
            //'message' => 'Your custom message here',
            'allowEmpty' => true,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),
    ),
    'img' => array(
        'alphanumeric' => array(
            'rule' => array('alphanumeric'),
            //'message' => 'Your custom message here',
            'allowEmpty' => true,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),
    ),
);
//The Associations below have been created with all possible keys, those that are not needed can be removed

var $belongsTo = array(
    'Team' => array(
        'className' => 'Team',
        'foreignKey' => 'team_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    ),
);
}
这段代码指向,我想检查了我的所有db字段,这是我从另一个模型复制的代码,但为了与我的表一起使用而更改了它

我的控制器代码:

class EventsController extends AppController {
var $name = 'Events';
var $uses = array();

function eventDetails() {

    $EventData = $this->Event->find('all');

    print_r($EventData);


    die();      
} //End of function eventDetails()

 } // End of EventsController Class
屏幕错误:

        Notice (8): Undefined property: EventsController::$Event        [APP/controllers/events_controller.php, line 10] Fatal error: Call to a member function   find() on a non-object in /var/www/vh/app/controllers/events_controller.php on line 10
此表只处理事件和团队两个表-它们以小写形式保存,并在末尾使用“s”。teams表已经在db中,events表是我制作的新表。就像我说的,当我使用这些从live站点导出到测试数据库的表时,然后使用新的CakePHP设置is works,它会打印表的内容

所以这一定与CakePHP的设置方式有关,而这个(蛋糕)对我来说还是很新的。这是我第一次制作新的模型/控制器/桌子。我一直在做的就是为已经构建和工作的控制器添加新功能

我也试过这段代码,$EventData=$this->set('events',$this->Event->find('all');'我从另一篇关于此类错误的帖子中获得了“$this->set('events')

我已经尽可能地讲清楚了,如果我没有讲清楚,请告诉我

非常感谢您的帮助

格伦·柯蒂斯。

删除:

var $uses = array();
CakePHP有自己的继承模型

$uses = array('Event', 'Foo'); // explicitly use Event and Foo model
$uses = array(); // don't use any models
默认情况下,CakePHP隐式地将
$uses
设置为控制器的相应模型(在您的情况下为
事件
)。因此,简单地删除它就是一种简单的方法。

删除:

var $uses = array();
CakePHP有自己的继承模型

$uses = array('Event', 'Foo'); // explicitly use Event and Foo model
$uses = array(); // don't use any models

默认情况下,CakePHP隐式地将
$uses
设置为控制器的相应模型,在您的例子中是
事件
。因此,简单地删除它就是一种简单的方法。

感谢您的快速回复,我这样做(删除var$uses)并加载默认视图(?),我认为。它似乎忽略了我的“死()'命令!另外,请在默认视图布局中告诉我'发生了内部错误错误:发生了内部错误'。您是否正在访问
/events/eventDetails
?听起来您有不止一个问题。当我转到->'localhost/site/events'时,我想我是的,并且我已经设置了一个将我传递到eventDetails函数的路由,或者这是错误的吗?看起来问题中所述的问题已经得到了回答,这个答案应该被接受……我会尝试访问我提到的URI。另外,正如Hoff所指出的,这回答了原始问题,如果您有更多问题,您应该发布一个新问题。感谢您的快速回复,我做到了(删除var$uses)和默认视图(?)很多,我想。它似乎超过了我的‘死’'命令!另外,请在默认视图布局中告诉我'发生了内部错误错误:发生了内部错误'。您是否正在访问
/events/eventDetails
?听起来您有不止一个问题。当我转到->'localhost/site/events'时,我想我是的,并且我已经设置了一个将我传递到eventDetails函数的路由,或者错了吗?看起来问题中的问题已经得到了回答,这个答案应该被接受……我会尝试访问我提到的URI。另外,正如Hoff所指出的,这回答了原始问题,如果你有更多问题,你应该发布一个新问题。