チュートリアルを通じてこの種のことを理解するつもりはありません。ブログタイプのチュートリアルで学んだことを取り入れて、状況に適用する必要があります。私のアプリケーションでは、製品を追加するだけで7つのテーブルに影響を与える可能性があります。
これは何よりもワークフローに関する質問です。ペンとパッドを持って座って、物事がどのように機能するか、テーブルがどのように関連するか、データを追加するためのフローを計画する必要があります。コーディングを開始する前に、データを追加する方法を理解する必要があります。挿入する前に他のテーブルからの情報が必要なテーブルなどです。たとえば、単純な製品の場合、製品テーブルと製品イメージの別のテーブルに基本データがあります。明らかに、この場合、最初に製品テーブルを挿入して、画像テーブルに追加するIDを取得する必要があります。はい、複数の挿入が発生することになります。実際、新しいメンバーを追加すると、データの動作方法が原因で、ルーチンが1つのテーブルに2回挿入します。
時間をかけて計画を立ててください。これは、誰も役に立たない状況です。テーブルとデータフローを論理的に見て、まとめることです。
簡単な部分である1つのフォームにすべてのデータを置くことに関して。結合を使用したクエリを使用して、コントローラー内のデータをプルするだけです。これらの線に沿った何か。
コントローラ:
$data['products'] = $this->product->getAllProductDetails($productId);
モデル:
$this->db->where('productId',$productId);
$this->db->join('product_images','product_images.productId=products.productId');
$this->db->join('manufacturers','manufacturers.manufacturerId=products.productId');
$this->db->get('products');
上記は、すべての商品、商品画像、メーカー情報を変数$ productsにプルして、ビューで使用できるようにします。次に、保存ボタンに、これらのテーブルごとに個別に保存を呼び出す別のコントローラー関数があります(挿入または更新、個人的にはどちらが必要かを決定する保存関数があります)。