私は 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 を取得します。どうすればこれを解決できますか?