2017-10-31 2 views
1

内の関数を呼び出すために、私は注文フォームを構築していると私は事前に警告を表示し、私はバックエンドのDEVとのnoob午前:)OctoberCMS - どのコンポーネント

は、だから私の最初のコンポーネントは、注文フォームからすべてのデータを受け取り、それをデータベースに保存し、次に同じデータを使用して見積もりを生成します。

// this runs when order is submitted on front end (runs from same component) 
public function onAddOrder() { 
    $this->submitOrder(); 
    $this->submitQuote(); 
    Flash::success('Order successfully submitted!'); 
    return Redirect::to('/home'); 
} 

public function submitOrder() { 
     // Add it to the database 
     $order = new Order(); 
     $order ->quote_no = $this->generateQuoteNo(); 
     $order ->company_name = Input::get('company_name'); 
     $order ->client_name = Input::get('client_name'); 
     $order ->client_email = Input::get('client_email'); 
     $order ->emergency_contact = Input::get('emergency_contact'); 
     $order ->due_date = Input::get('due_date'); 
     $order ->project_name = Input::get('project_name'); 
     $order ->quote_query = Input::get('quote_query'); 
     $order ->order_no = Input::get('order_no'); 
     $order ->order_type = Input::get('order_type'); 
     $order ->save(); 
    } 
} 

public function submitQuote() { 
    $quote = new Quote(); 
    $quote->quote_no = $this->generateQuoteNo(); 
    $quote->customer = Input::get('company_name'); 
    $quote->job_name = Input::get('project_name'); 
    $quote->order_no = Input::get('order_no'); 
    $quote->proof_price = $this->calculateProofPrice(); 
    $quote->sub_total = $this->calculateSubTotal(); 
    $quote->vat = $this->calculateVat(); 
    $quote->total = $this->calculateTotal(); 
    $quote->save();   
} 

これはうまく動作しますが、その後、私は選択が行われた場合、別の関数を実行したいと思いますが、この後、私は引用符が受け入れられた場合、請求書を生成thrird部分を持って、これまでの私のコードは次のようになりますこのコンポーネントは別のクラスの下にあり、参照する方法がわかりません。

if (Input::get('quote_query') === 'Order') { 
     $this->AcmeInvoice->onSubmitInvoice(); 
    } 

誰かが私に公共機能を発動するのを助けることができれば、私は本当にそれを感謝します。

+0

クラス内のオブジェクトをインスタンス化することはできますか?例:$ invoice = new AcmeInvoice(); //名前空間にない場合は名前空間を追加します。 $ invoice-> onSubmitInvoice(); – pseudoanime

+0

ありがとうございました擬似、これは動作しますが、関数全体を起動するようには見えませんが、新しい請求書を作成しますが、列には何も入力しません。私の3番目の関数は次のようになります: 'public function onSubmitInvoice(){ $ invoice = new Invoice(); $ invoice-> quote_no = post( 'quote_no'); $請求書 - >顧客= $ this->顧客(); $ invoice-> sub_total = $ this-> sub_total(); $ invoice-> vat = $ this-> vat(); $請求書 - >合計= $ this->合計(); $ invoice-> save(); ' ここには何も値が渡されていないので、 – Gareth

+0

は実行されません。関数を呼び出すときは、$ invoice-> onSubmitInvoice(値)を使用する必要があります。それを配列として渡し、値を保存するために配列にアクセスしてください – pseudoanime

答えて

4

クラス&でオブジェクトをインスタンス化できますか?例:$ invoice = new AcmeInvoice(); //名前空間にない場合は名前空間を追加します。 $ invoice-> onSubmitInvoice();

if (Input::get('query') === 'Invoice') { 
      $invoice = new AcmeInvoice(); 
      $invoice->onSubmitInvoice('quote_no'); 
     } 
+0

あなたの答えにはもう少し含める必要があります。これは、「低品質の投稿」レビューキューに表示されます。 –

関連する問題