私はcakephp 2.3.0を使用しています。私がやろうとしているのは、ユーザーにリンク (画像の形で) をクリックさせることです。そのユーザーのアクションは、そのユーザーのデータベースから一部のデータを削除します。
私の見解では、このコード スニペットは、実際にはテーブル内の列です。「delete」という単語については、($this->Html->image() を使用して) 画像にしたいのですが、cakephp はそれについて文句を言います。API によると、そのパラメーターは文字列のみです。
$this->Form->postLink(
'delete',
array('action' => 'deleteActivity', $myActivity['Activity']['id']),
array('confirm' => 'Are you sure?')),
私が試みているコントローラーの機能は次のとおりです。
public function deleteActivity($id) {
if ($this->Post->delete($id)) {
$this->Session->setFlash('The activity with id: ' . $id . ' has been deleted.');
$this->redirect(array('action' => 'landingPage'));
}
}
以下のエラーが表示されます。form タグを post でラップしてもうまくいかないようです。私がやろうとしているのは、CakePHPでこれを行うベストプラクティスの方法ですか?
致命的な誤り
エラー: 非オブジェクトでのメンバー関数 delete() の呼び出し
生成された HTML は次のとおりです。
<td><form action="/activities/index.php/activities/deleteActivity/4" name="post_515496f40ca77" id="post_515496f40ca77" style="display:none;" method="post"> <input type="hidden" name="_method" value="POST"/></form><a href="#" onclick="if (confirm('Are you sure?')) { document.post_515496f40ca77.submit(); } event.returnValue = false; return false;">delete</a></td>