2017-12-21 44 views
0

私はcustomerorderエンティティを持っています。顧客が注文を行うと(教義エンティティ)エンティティを「異なるクラス」にコピーしますか?

どちらも、私がオーダーのアドレスに、顧客からのアドレスをコピーしたい、同じAddressInterface

を実施し、address関連するエンティティを持っています。

$orderAddress = new OrderInvoiceAddress(); 
$orderAddress->setLastName($customerAddress->getLastName()); 
... 
... 

しかし、より多くのがあった場合、私は思っていた:私は何ができるもちろんので

を(私は時に顧客アドレスの変更順序アドレスは変更しないように私は、コピーが必要です)エレガントな方法?

+0

を多分これを見てみましょうか? https://stackoverflow.com/questions/14216285/symfony-2-clone-entity-to-different-table – Caitlyn

+0

ありがとうございます。私はそれについて知っていましたが、私はもっとエレガントなものを望んでいました;) – minychillo

+0

タイプキャスティングはどうですか? '$ orderAddress =(OrderInvoiceAddress)$ customerAddress;' –

答えて

0

は、静的メソッドを使用します。

class OrderAddress { 

    static function CreateFromCustomerAddress(CustomerAddress $customerAddress) 
    { 
     $orderAddress=new self(); 
     $orderAddress->setFirstName($customerAddress->getFirstName()); 

     return $orderAddress; 
    } 

    private $firstName; 

使用法:

$orderAddress=OrderAddress::CreateFromCustomerAddress($customerAddress); 
+0

ありがとう...しかし、まったく同じです。 – minychillo

+0

そうではありません。 1)あるものから別のものに変換する関数をテストすることができます。 2)コードをより読みやすくする。 – albert

+0

symfonyプロパティのアクセサを使用できます。データをある場所から別の場所に移動するのは非常に便利ですが、テストするのが難しくなります – albert

関連する問題