2015-08-06 4 views
1

Я работаю над формой, которая должна быть в состоянии обновить две разные таблицы. Я использую контроллер заказа и вам необходимо обновить таблицу заказов. Другая таблица, которую мне нужно обновить, - CampaignCustomers, где я хотел бы обновить идентификатор кампании.Один контроллер Несколько таблиц

Обе модели связаны, и вот результат, когда я отладки $ заказ:

array(
    'Order' => array(
     'OrderID' => (int) 1574996, 
     'OrderType' => '3', 
     'UPSTrackingNumber' => null, 
     'CreatedDate' => 'Mar 30 2019 12:42:00:000PM', 
     'ShippedOnDate' => null, 
     'Notes' => null, 
     'OrderedBy' => 'TIM', 
     'UserID' => (int) 431, 
     'CampaignCustomerID' => (float) 78156512, 
     'TaxPercentage' => (int) 0, 
     'DiscountID' => null, 
     'DiscountPercentage' => (int) 8, 
     'TotalPrice' => (float) 7.75, 
     'OrderStatusID' => (int) 13, 
     'LabelCategory' => null, 
     'LabelPrinted' => (int) 0, 
     'InvoicePrinted' => (int) 0, 
     'ShippingMethodID' => (int) 9, 
     'SaturdayDelivery' => (int) 0, 
     'ShippingAddress' => 'ert', 
     'ShippingPrice' => (float) 7.75, 
     'ConfirmationEmail' => null, 
     'PaymentMethod' => 'Bill In Full', 
     'PurchaseOrderNumber' => ' dfqsdfsdafe3r23rwererewrw', 
     'CreditCardHolderName' => null, 
     'CreditCardNumber' => null, 
     'CreditCardExpirationDate' => null, 
     'CreditCardStreet' => null, 
     'CreditCardZipCode' => null, 
     'CreditCardCVV' => null, 
     'TransactionID' => null 
    ), 

    'CampaignCustomer' => array(
     'CampaignCustomerID' => (float) 78156512, 
     'CampaignID' => (int) 422, 
     'CustomerID' => (int) 3633 
    ), 

Это мое мнение:

<?php 
debug($order); 
echo $this->Html->div("box"); 
    echo $this->Html->tag("h3","Edit Order ".$order['Order']['OrderID']); 
     echo "<p><b>Company: </b>" . $order["Company"]["CompanyName"] . "</p>"; 
     echo "<p><b>Order ID: </b>" . $order["Order"]["OrderID"] . "</p>"; 
    echo $this->Form->create(("Order")); 
      echo $this->Form->input("PurchaseOrderNumber"); 
      echo $this->Form->input("CampaignID",array("options"=>$campaigns,"label"=>"Campaign","selected"=>$order["Campaign"]["CampaignID"])); 
      echo $this->Form->input("CreatedDate"); 
      echo $this->Form->input("OrderType",array("options"=>$orderType,"selected"=>$order["Order"]["OrderType"])); 
      echo $this->Form->input("OrderedBy"); 
      echo $this->Form->input("ShippingMethodID",array("options"=>$shipping_method_ids,"selected"=>$order["Order"]["ShippingMethodID"],"label"=>"Shipping Method")); 
      echo $this->Form->input("SaturdayDelivery"); 
      echo $this->Form->input("UserID",array("options"=>$users,"selected"=>$order["Order"]["UserID"],"label"=>"Sales Agent")); 
      echo $this->Form->input("DiscountPercentage"); 
      echo $this->Form->input("ShippingAddress"); 
    echo $this->Form->end("Update Order"); 
echo "</div>"; 
?> 

Единственное, что не будет обновлять это Поле CampaignID, потому что это другая таблица.

Кто-нибудь знает, как решить эту проблему?

Спасибо!

ответ

0

Вы не прошли данные CampaignCustomer в форму, поэтому, когда запрос на запись сделана, нет ничего для того, чтобы обновить с точки зрения CampaignCustomer

Вы должны включить эту информацию в вашей форме в любой скрытой полей или видимых, чтобы обеспечить его обновление.

echo $this->Form->create(); 
     echo $this->Form->input("Order.PurchaseOrderNumber"); 
     echo $this->Form->input("Order.CampaignID",array("options"=>$campaigns,"label"=>"Campaign","selected"=>$order["Campaign"]["CampaignID"])); 
     echo $this->Form->input("Order.CreatedDate"); 
     echo $this->Form->input("Order.rderType",array("options"=>$orderType,"selected"=>$order["Order"]["OrderType"])); 
     echo $this->Form->input("Order.OrderedBy"); 
     echo $this->Form->input("Order.ShippingMethodID",array("options"=>$shipping_method_ids,"selected"=>$order["Order"]["ShippingMethodID"],"label"=>"Shipping Method")); 
     echo $this->Form->input("Order.SaturdayDelivery"); 
     echo $this->Form->input("Order.UserID",array("options"=>$users,"selected"=>$order["Order"]["UserID"],"label"=>"Sales Agent")); 
     echo $this->Form->input("Order.DiscountPercentage"); 
     echo $this->Form->input("Order.ShippingAddress"); 
     echo $this->Form->input("CampaignCustomer.CampaignCustomerID"); 
     echo $this->Form->input("CampaignCustomer.CampaignID"); 
     echo $this->Form->input("CampaignCustomer.CustomerID"); 
echo $this->Form->end("Update Order"); 
Смежные вопросы