首页 > 解决方案 > 如何将函数变量与另一个函数一起使用

问题描述

我正在创建网站。在这个网站上,我创建了一个注册表单。用户可以输入详细信息,当用户单击提交按钮时,所有数据都会保存到数据库中。这是我的 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');
            });
}

标签: phplaravel

解决方案


您可以在 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);
}
}

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


推荐阅读