public function action_regist() { try { DB::start_transaction(); //$this->checkCsrf(); // バリデーションチェック $val = Validation::forge(); $val->add("hospital_id", "病院ID")->add_rule("required"); $val->add("nickname", "清潔感")->add_rule("required"); $val->add("message", "内容")->add_rule("required"); $param = $this->validate($val); $hospitalId = $param["hospital_id"]; // 登録 $review = Model_Db_Thospitalreview::forge(); $review->t_hospital_review_hospital_id = $hospitalId; $review->t_hospital_review_nickname = $param["nickname"]; $review->t_hospital_review_message = $param["message"]; $review->t_hospital_review_status = ReviewStatus::CLOSED; $review->t_hospital_review_created_at = System::now(); if ($review->save() == 0) { throw new Exception("病院評価登録に失敗しました"); } DB::query("refresh materialized view v_hospital_review")->execute(); Cookie::set("review_" . $hospitalId, $hospitalId, Config::get("site.expire.review")); $this->response(); DB::commit_transaction(); } catch (Exception $e) { DB::rollback_transaction(); $this->error($e); } }
/** * 口コミ * @param type $hospitalId */ private function registReview($hospitalId) { $max = rand(0, 3); for ($j = 0; $j < $max; $j++) { // ニックネーム生成 $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJLKMNOPQRSTUVWXYZ0123456789"; $nickname = ""; for ($i = 0; $i < 6; ++$i) { $nickname .= $chars[mt_rand(0, 61)]; } $row = Model_Db_Thospitalreview::forge(); //$row->t_hospital_review_id = ""; $row->t_hospital_review_nickname = $nickname; $row->t_hospital_review_hospital_id = $hospitalId; $row->t_hospital_review_message = $this->dummyReview[rand(0, 11)]; $row->t_hospital_review_status = ReviewStatus::PUBLISH; $row->t_hospital_review_created_at = System::now(); $row->t_hospital_review_updated_at = null; $row->t_hospital_review_deleted_at = null; $row->save(); } }