ブログアプリ制作

パソコンのことなら、なんでも詳しいだろうという
勝手な家族の思い込みにより、
私は家族から頼りにされています。
コピーができないとか…
保存ができないとか……

本当にちっぽけなことなんです。

そんな、ちっぽけなことでも、
家族の力になれたら、
ちょっぴり嬉しい私なのでした。


本日のメニュー
■ブログアプリ制作

  • コメント

本日も、ひたすらコメント機能の作成に着手していました。
コメントフォームのバリデータも完了したはずで、
よっし、これで完了!!って感じて、
ルンルン♪だったのですが…、


気付いてしまったのです。


コメントが書かれてる記事を、
削除しようとするとエラーがでる!!
ビーン…。


それそも、
記事を削除する時、コメントも削除するって言う風に、
プログラム書いてないから当たり前だよね。


もともとのデリート(ひとつの記事を削除)

 public function executeDelete()
  {
    $article = ArticlePeer::retrieveByPk($this->getRequestParameter('id'));
    $this->forward404Unless($article);
    $article->delete();
    return $this->redirect('@homepage');
  }


自分で関数作った(〜/lib/model/CommentPeer.phpの中に)
その記事のコメントを全部とってくる関数

  public static function getCommentbyArticleId($id)
  {
    $criteria = new Criteria();
    $criteria->add(CommentPeer::ARTICLE_ID, $id);
    $v = CommentPeer::doSelect($criteria);
    return $v;
  }


この関数を使って、記事削除のアクションに、
コメント全部削除も追加した。

 public function executeDelete()
  {
    $article = ArticlePeer::retrieveByPk($this->getRequestParameter('id'));
    $this->forward404Unless($article);
    //記事idからコメントを取得
    $comments = CommentPeer::getCommentbyArticleId($this->getRequestParameter('id'));
    //コメントがあれば、全消去
    if($comments){
      foreach($comments as $comment){
        $comment->delete();
      }
    }
    //記事を削除
    $article->delete();
    return $this->redirect('@homepage');
  }

これで無事に、
記事もコメントも削除できたとさ、めでたしめでたし。


しかし、トランザクションしなきゃな…。


ブログ制作を1週間以上やってきて、
初めて自分で関数作った気がする…。
自分でつける関数名ってなんか、
センスが問われるというか…ちょっぴり迷う。


ってか、本当に最近強く感じる…。
まだまだだな…。
まだまだ過ぎるっ!!