質問: Cakephpでこちらのサイトを使って進めています http://tetra-themes.com/cakephp-howto-add-11/ 記事を追加するというところでエラーが出てしまいました。 viewを作成後に指示通りのコードをMemosControllerに記述。 ここでエラーが出てしましました。 “エラー内容” Fatal Error Error: syntax error, unexpected 'public' (T_PUBLIC) File: /Applications/MAMP/htdocs/cakephp-2.2.0/app/Controller/MemosController.php Line: 10 MemosController.phpのコードです↓ ``` Model名->find('条件')); $this->set('Memo',$this->Memo->find('all')); } } public function add() { if($this->request->is('post')) //postでリクエストが来た場合 { if($this->Memo->save($this->request->data)) //データベースに保存 { $this->Session->setFlash('入力完了'); //成功したら入力完了と表示 $this->redirect(array('action'=>'index')); //続けてindexページを表示 } else { $this->Session->setFlash('入力失敗'); //失敗したら入力失敗と表示 } } } ?> ``` 特にページと間違った部分が見当たらないので一体どこが悪いのかわかりません。。。
回答: {}をよく見られると間違いがわかります。 classにadd()が入ってないですね。 【追記】 ``` class MemoController extends AppController { public function index() { } public function add() { } } ``` class {}の中にメソッドなりいろんなことを書いていくのに、今回は、class {}の外にpublic function add()が出てしまっていました。 当然classじゃないfunctionはありますが、その場合はpublicは不要になります。 いろいろ、閉じ括弧の位置など確認しつつ、書くようにされたら良いと思います。 もしかしたら面倒でも、classやfunctionを書いたときには一旦{}など閉じるとこまで書いておき、「その中」に処理を書くという感じで考えると楽かもしれません。