2

大家好,我已经在 cakephp 2.x 框架中开发了一个应用程序。我使用以下代码编写了用于更新和保存到数据库中的代码:

public function editpackage($id=null)
{
    $this->layout='dashboard';
    $this->loadModel('Survay');
    if (!$id) {
        throw new NotFoundException(__('Your request is invalid'));
    }

    $get_survay_id = $this->Survay->findById($id);
    if (!$get_survay_id) {
        throw new NotFoundException(__('Your request is invalid'));
    }  

    if ($this->request->is(array('post', 'put'))) {
        $this->Survay->id = $id;
        $this->request->data['Survay']['modifydate']=DboSource::expression('NOW()');
        if ($this->Survay->save($this->request->data)) {
            $this->Session->setFlash('Your Survay is successfully  updated','default',array('class'=>'alert alert-success'));   
            return $this->redirect(array('controller'=>'Users','action'=>'detailspackage'));
        }
    }
    if (!$this->request->data) {
        $this->request->data = $get_survay_id;
    }
}

我正进入(状态 :

Non-static method DboSource::expression() should not be called statically, assuming $this from incompatible context
4

1 回答 1

0

这是因为您使用的是 PHP 5.4 或更高版本,其中 E_STRICT 已成为 E_ALL 的一部分。

选项1

您可以通过修改 app/Config/core.php 中的错误配置来从错误报告中删除 ~E_STRICT:

Configure::write('Error', array(
    'handler' => 'ErrorHandler::handleError',
    'level' => E_ALL & ~E_STRICT & ~E_DEPRECATED,
    'trace' => true
));

选项 2

代替

DboSource::expression('NOW()');

你可以打电话

$this->Model->getDataSource()->expression('NOW()');
于 2015-12-02T19:50:29.583 回答