2012年7月5日木曜日

2012年07月05日 講義092日目

2012年07月05日
講義092日目
------------------------------1H------------------------------
------------------------------2H------------------------------
★SEOとかについて
  ターゲットキーワード
  同タイトルのサイトがあるか確認
  ページ構成によってSEO
------------------------------3H------------------------------
★symfony復習
●dev.shonanbbs.comの変更
・O/Rマッパ
  オブジェクトとリレーショナルデータベース
・executeModeltest()の作成
  executeIndex()のModelに接続してる部分を移行する
・retrieveByPk()でidからレコードを取得
  $this->member_two = MemberPeer::retrieveByPk(2);
●Criteriaの復習
・Criteria
  Criteriaはclass
・doSelect()
  $comments = CommentPeer::doSelect($c);
・doSelectOne()
  $this->firstcomment = CommentPeer::doselectOne($c);
  データが存在するかどうか確認したいときなど
・doCount()
  $this->cnt_comments = CommentPeer::doCount($c);
  条件に一致するレコードの件数を取得する
------------------------------4H------------------------------
★symfony復習
●Criteriaの復習
・lib/model/omのBaseMemberを見てみる 
・BaseMemberPeer.php
  オブジェクト化するためのクラス
・BaseMember.php
  オブジェクトから値を引き出す関数が記述されたクラス
・add()
  $c->add(CommentPeer::CATEGORY_ID, "1");
  $this->cate_one = CommentPeer::doSelect($c)
・add(Criteria::NOT_EQUAL)
  $c = new Criteria;
  $c->add(CommentPeer::CATEGORY_ID, "1");
  $this->cate_one = CommentPeer::doSelect($c);
  ↑new Criteriaしている理由は条件をクリアするため
  add()の場合には$cに条件が追加されているので$cを使いまわす場合には気をつける
------------------------------5H------------------------------
★symfony復習
●Criteriaの復習
・getNewCriterion()
  一つのカラムに対して複数の条件を加える場合(範囲指定など)
  $c = new Criteria;
  $now = date("Y-m-d H:i:s");
  $from = date("Y-m-d H:i:s", strtotime("-1 month"));
  $c1 = $c->getNewCriterion(CommentPeer::CREATED_AT, $now, Criteria::LESS_THAN);
  $c2 = $c->getNewCriterion(CommentPeer::CREATED_AT, $from, Criteria::GREATER_THAN);
  $c1->addAnd($c2);
  $c->add($c1);
  $this->one_month_comments = Comment::PeerdoSelect($c);
  条件を$c1、$c2と増やしてaddAnd()やaddOr()でつなげる
  最終的には$cにadd()でつなげる
☆addOr()もある
・addDecendingOrderByColumn()
  並べ替え関数
  $c = new Criteria;
  $this->id_order = MemberPeer::doSelect($c);

  $c->addDescendingOrderByColumn(MemberPeer::ID);

  $this->id_order_desc = MemberPeer::doSelect($c);

  $c = new Criteria;
  $c->addAscendingOrderByColumn(MemberPeer::ID);
  $this->id_order_asc = MemberPeer::doSelect($c);
------------------------------6H------------------------------
★symfony復習
●CRUDの復習
・Read
  $this->replys = ReplyPeer::doSelect($c = new Criteria);
  ↑を元にテンプレートでdev.shonanbbs.com/default/modeltest/up/1のようなurlを作るテーブルなどを作成
    ・getRequestParameter()
      dev.shonanbbs.com/default/modeltest以下の/up/1部分を受け取ることができる
・Update
  $up = $this->getRequestParameter("up");
  $reply->save();
  ☆is_object()でオブジェクトかどうか調べて条件分岐させる処理も必要になってくる
・Delete
  $del = $this->getRequestParameter("del");
  $reply = ReplyPeer::retrieveByPk($del);
  ・値を物理削除する場合
      $reply->delete();
  ・値を論理削除する場合はUpdateを使って削除用のカラムを書き換える
      $reply->setDeleteFlg("y");
      $reply->save();
-----------------------------memo------------------------------

0 件のコメント:

コメントを投稿