예제 #1
0
파일: product.php 프로젝트: khoapld/wjshop
 public function post_create()
 {
     $val = Validation::forge();
     $val->add_callable('MyRules');
     $val->add_field('category_ids', Lang::get('label.category'), 'required');
     $val->add_field('product_name', Lang::get('label.product_name'), 'required|max_length[255]');
     $val->add_field('product_description', Lang::get('label.description'), 'trim|max_length[1024]');
     $val->add_field('product_info', Lang::get('label.information'), 'trim|max_length[10000]');
     if ($val->run()) {
         DB::start_transaction();
         $category_ids = $val->validated('category_ids');
         $category_name = Model_Service_Util::mb_trim($val->validated('product_name'));
         $product_description = Model_Service_Util::mb_trim($val->validated('product_description'));
         $product_info = $val->validated('product_info');
         $product_props = array('product_name' => $category_name, 'product_description' => $product_description, 'product_info' => $product_info);
         $product_id = Model_Base_Product::insert($product_props);
         if ($product_id && Model_Base_ProductCategory::insert($product_id, $category_ids)) {
             $photo_props = array('type' => 'main_photo', 'product_id' => $product_id);
             $upload = Model_Service_Upload::run('product', $photo_props);
             if (empty($upload['error'])) {
                 DB::commit_transaction();
                 $this->data['success'] = true;
                 $this->data['product']['id'] = $product_id;
                 $this->data['msg'] = Lang::get('notice.upload.save_product_success');
             } else {
                 DB::rollback_transaction();
                 $this->data['msg'] = $upload['error'];
             }
         } else {
             DB::rollback_transaction();
             $this->data['msg'] = Lang::get($this->controller . '.' . $this->action . '.error');
         }
     } else {
         $this->data['errors'] = $val->error_message();
     }
     return $this->response($this->data);
 }