これが新しいレコードであるかどうかを確認する条件を実行すると、この致命的なエラーが発生します。そうである場合は、データベースに重複するドラフト レコードを作成します。
アクション.クラス.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
、次のように返されます。
bool(偽)
このコードの古い作業バージョンは同一であるため、この正確なコードが間違っているかどうかはわかりません。どこを見ればよいかわかりません。