1

私は codeigniter で開発されたサイトを持っています。検証なしでデータベースに挿入しました。My_Model (多くの開発者が github からダウンロードした codeigniter のフィールドを検証するために使用するフィールドを検証するための拡張モデル) を使用したいのですが、関数で別のテーブルにさらに挿入する必要がある場合は? どうすればこれを行うことができますか? たとえば、製品がある場合、そのデータをデータベースに挿入しSELECT LAST_INSERT_ID、そのIDを取得して、そのproduct_idを使用して画像を次のような関数に挿入します。

        $product = array('name'=>'test');
        $this->db->insert('product',$product);
        $query = $this->db->query('SELECT LAST_INSERT_ID()');
        $row = $query->row_array();
        $product_id = $row['LAST_INSERT_ID()'];
        $img = array(
                 'product_id'=>$product_id,
             'url'=>$url)       
                );
        $this->db->insert('img',$img);

My_Model には次の関数があります。

   $product = array('name'=>'test');
   $nation_id = $this->insert($product);
   $this->load->model('backend/Img_model');
   $img_model = new Img_Model();
   $img = array(
             'product_id'=>$product_id,
             'url'=>$url
         );
   return $img_model->insert($img);

問題は、Nation_Model にはフィールドをチェックするための検証の配列があり、Img_Model には次のような別の検証配列があります (これは単なる例です)。

 public $validate = array(
        array( 'field' => 'name', 
               'label' => 'name',
               'rules' => 'required),
     );

しかし、挿入しようとすると、最初の挿入は問題ありませんが、2 番目の挿入は Img_Model の検証配列を取得しませんが、nation_Model の validate_array を取得します。どうすればこれを解決できますか?

4

0 に答える 0