2017-07-20 11 views
0

I、次のデータベースの構造を有する:Laravel - 一方のコントローラで複数のモデル

Enquiries

ID

total_widgets

をCUSTOMER_ID

TOTAL_AMOUNTをあなたはセクションと、この意志にお客様の詳細情報を入力することができます

Customers

ID、あなたがお問い合わせを作成しているときに、フォームを使用して

FIRST_NAME、

last_nameの

firstOrCreateを使用して店を開き、にリンクするにはidが表示されます今Customer

からには、問題はこれがすべてのように、Customersコントローラ内storeメソッド内で行われることである以下:

public function store(Request $request) 
{ 
    $rules = array(
     "first_name" => "required", 
     "last_name" => "required", 
     "total_widgets" => "required" 
    ); 

    // Handle validation 

    // Create customer 
    $customer = \App\Customers::firstOrCreate(['first_name' => $request- 
       >get('first_name')]); 

    $enquiry = new \App\Enquiries(); 
    $enquiry->customer_id = $customer->id; 
    $enquiry->save(); 

} 

このようにそれをやっての問題は、それが分離されていないということです顧客を作成するプロセスが変わった場合は、これを何度も変更する必要があります。 (毎回顧客が必要なセクションがあります)。

もっと良い方法がありますか?たとえば、別途顧客を作成してIDを$requestに渡す必要がありますか?

答えて

0

これを行うための別の方法は次のとおりです。

1)お問い合わせには、「新しい顧客を追加」というボタンを追加形成します。

2)このボタンをクリックするとモーダルが表示され、詳細を入力して送信をクリックします。

3)submitをクリックすると、CustomerControllerへのajax呼び出しが行われ、データが挿入され、最後に挿入されたIDが返されます。

4)これで、enquireyフォームのドロップダウンボックス(ユーザーを選択するためのドロップダウンリストがいくつかあります)が表示され、submitを押します。

5)それはenquireyコントローラに渡され、保存されます。

希望すると、これが役立ちます。

関連する問題