如何使用函数变量与另一个函数

时间:2018-06-11 09:29:05

标签: php laravel

我正在创建网站。在这个网站上,我创建了一个注册表。用户可以输入详细信息,当用户单击“提交”按钮时,所有数据保存到数据库中。这是我的saveInvoice函数。在我的视图页面中,我使用了saveInvoice作为我的动作。然后我在这个函数中使用了请求输入。

public function saveInvoice(Request $request)
    {
        if (Auth::user())
        {
            $settings = Setting::find(1);
            $invoiceNo=$settings->invoiceprefix.''.str_pad($settings->invoiceno, $settings->invoicepadding, 0, STR_PAD_LEFT);

            $invoice= new Invoice();
            $invoice->invoicereference=$invoiceNo;
            $invoice->firstname=$request->fname;
            $invoice->lastname=$request->lname;

            $invoice->save();

            $settings->invoiceno=$settings->invoiceno+1;
            $settings->update();

            if($invoice == null){
                return redirect()->back()->with('msg','invalid request');
            }
            else{
                return redirect()->route('invoice.preview',$invoiceNo);
            }
        }

    }

但是,现在我想创建另一个名为sendemail的函数。在这个函数中,我想使用用户已填写该注册表单的用户输入。我可以从上面的函数中获取那些请求输入,还是有另一种方法?

public function sendemail(Request $request) {
$invoiceNo = $request->input('invoiceNo');
            $fname = $request->input('fname');
            $Qty = $request->input('Qty');
            $price = $request->input('price');
            $sendemail = $request->input('email');

            $data = [];
            $data['invoiceNo'] = $invoiceNo;
            $data['fname'] = $fname;
            $data['Qty'] = $Qty;
            $data['price'] = $price;
            $data['sendemail'] = $sendemail;

            Mail::send(['text' => 'mail'], $data, function ($message) use ($data) {
                $message->to($data["sendemail"], 'TicketBooker')->subject
                ('CheapEfares Air Ticket');
                $message->from('kistlakall@gmail.com', 'CheapEfares');
            });
}

2 个答案:

答案 0 :(得分:1)

您可以在saveInvoice函数中调用sendemail函数,然后将Request对象传递给sendemail函数,如

public function saveInvoice(Request $request){
//save invoice code

if($invoice == null){
  return redirect()->back()->with('msg','invalid request');
}
else{
  $this->sendemail(Request $request);
  return redirect()->route('invoice.preview',$invoiceNo);
}
}

我假设两个函数都在同一个类中,或者一个类正在扩展其他类

答案 1 :(得分:1)

您只需从代码中调用该方法即可 并且在返回该方法时,您可以设置您的回复。

Volume