2010-12-05 Staff アプリケーション (1.2) ================================================================================ クエリーは、ID の一致、名前または名前読みの一部、部署による。 list から、find アクションを使う。 そこから、IDの一致の場合は、そのまま show アクションを使う。 名前または名前読みの一部、部署の場合は、list アクションを使う。 ■アクション毎のテンプレート □ templates/listSuccess.php のクエリー部分 --- :

IDを指定して検索できます。何も指定しなければスタッフの一覧です。

名前や名前読みの一部を指定して検索できます。何も指定しなければスタッフの一覧です。

所属を指定して検索できます。何も指定しなければスタッフの一覧です。

: --- ■ actions/actions.class.php 新規追加メソッド --- public function executeFind() { // ID検索 if ($this->getRequestParameter('id') != '') { return $this->forward('stafflist', 'show'); } // 名前検索 if ($this->getRequestParameter('name') != '') { $criteria = new Criteria(); $c1 = $criteria->getNewCriterion(StaffPeer::NAME, '%' . $this->getRequestParameter('name') . '%', Criteria::LIKE); $c2 = $criteria->getNewCriterion(StaffPeer::NAME_KANA, '%' . $this->getRequestParameter('name') . '%', Criteria::LIKE); $c1->addOr($c2); $criteria->add($c1); $this->getRequest()->setAttribute("criteria", $criteria); return $this->forward('stafflist', 'list'); } // 所属検索 if ($this->getRequestParameter('deploy') != '') { $criteria = new Criteria(); $criteria->add(StaffPeer::DEPLOY, $this->getRequestParameter('deploy')); $this->getRequest()->setAttribute("criteria", $criteria); return $this->forward('stafflist', 'list'); } return $this->forward('stafflist', 'list'); } --- ■ actions/actions.class.php のexecuteListメソッドの変更 --- public function executeList() { $criteria = $this->getRequest()->getAttribute("criteria"); if (empty($criteria)) { $criteria = new Criteria(); } $this->staffs = StaffPeer::doSelect($criteria); } --- 以上