我在运行条件以查看这是否是新记录时遇到此致命错误,如果是,则在数据库中创建重复的草稿记录。
动作类.php
$this->form = new AlertsForm($active_alert);
if ($request->isMethod('post')) {
$this->form->bind($request->getParameter('alerts'), $request->getFiles('alerts'));
if ($this->form->isValid()) {
try {
/* check if record is the draft version, and if not create one */
if (!$active_alert->isNew() && !$active_alert['is_preview'] &&
($request->getParameter('button_type') != 'publish' ||
!$this->getUser()->hasPublishingPrivilege())) {
$active_alert = $active_alert->createDraft();
$values = $request->getParameter('alerts');
$values['id'] = $active_alert['id'];
$this->form = new AlertsForm($active_alert);
$this->form->bind($values, $request->getFiles('alerts'));
$this->getUser()->setFlash('draft', true);
}
错误:
Fatal error: Call to a member function isNew() on a non-object in apps/cms/modules/alerts/actions/actions.class.php on line 35
如果我在 var_dump 上运行$active_alert
,它会返回:
布尔(假)
这段代码的旧工作版本是相同的,所以我不确定是不是这个确切的代码是错误的,我只是不知道在哪里看。