内の関数を呼び出すために、私は注文フォームを構築していると私は事前に警告を表示し、私はバックエンドの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();
}
誰かが私に公共機能を発動するのを助けることができれば、私は本当にそれを感謝します。
クラス内のオブジェクトをインスタンス化することはできますか?例:$ invoice = new AcmeInvoice(); //名前空間にない場合は名前空間を追加します。 $ invoice-> onSubmitInvoice(); – pseudoanime
ありがとうございました擬似、これは動作しますが、関数全体を起動するようには見えませんが、新しい請求書を作成しますが、列には何も入力しません。私の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
は実行されません。関数を呼び出すときは、$ invoice-> onSubmitInvoice(値)を使用する必要があります。それを配列として渡し、値を保存するために配列にアクセスしてください – pseudoanime