亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Laravel 中將數據從私有函數傳遞到公共函數?

如何在 Laravel 中將數據從私有函數傳遞到公共函數?

PHP
開滿天機 2023-09-08 21:43:54
我有私人和公共職能。私有函數獲取從表單發送的數據,公共函數執行結帳。    private function projectData(Request $request){                // dd($request->all());  //    $item = [];        // $datat = array_map(function($item){        //  return [        //      'name'=>$request->project_id,        //      'price'=>$request->budget,        //      'desc'=>'Deposit',        //      'qty'=>1        //  ];        // }, $item);        $data = [                'items'=>[                    'name'=>'Project No.'.$request->project_id                ],                'invoice_id' => uniqid(),                'invoice_description' => "Payment for Project No.".$request->project_id." Amount ".$request->budget,                'return_url' => route('payment.success'),                'cancel_url' => route('payment.cancel'),                'total' => $request->budget         ];          // dd($data);        return $data;    }        /**     * Responds with a welcome message with instructions     *     * @return \Illuminate\Http\Response     */    public function payment()    {        $data = $this->projectData();        $provider = new ExpressCheckout;        $response = $provider->setExpressCheckout($data);        dd($response);        // $response = $provider->setExpressCheckout($data, true);        return redirect($response['paypal_link']);    }我收到這個錯誤函數 App\Http\Controllers\PayPalController::projectData() 的參數太少,第 42 行 /var/www/CareerHouse/app/Http/Controllers/PayPalController.php 中傳入的參數為 0,而預期為 1我不知道我做錯了什么以及如何糾正?
查看完整描述

2 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

由于付款是公共方法并且它會重定向,因此很可能是通過路由調用的。在這種情況下,您可以在付款中注入請求實例,如下所示:


public function payment(Request $request)    {

        $data = $this->projectData($request);

        $provider = new ExpressCheckout;

        $response = $provider->setExpressCheckout($data);

        dd($response);

        // $response = $provider->setExpressCheckout($data, true);


        return redirect($response['paypal_link']);

    }


查看完整回答
反對 回復 2023-09-08
?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

private function projectData(){

$request=request();

                // dd($request->all());

  //    $item = [];

        // $datat = array_map(function($item){

        //  return [

        //      'name'=>$request->project_id,

        //      'price'=>$request->budget,

        //      'desc'=>'Deposit',

        //      'qty'=>1

        //  ];

        // }, $item);

        $data = [

                'items'=>[

                    'name'=>'Project No.'.$request->project_id

                ],

                'invoice_id' => uniqid(),

                'invoice_description' => "Payment for Project No.".$request->project_id." Amount ".$request->budget,

                'return_url' => route('payment.success'),

                'cancel_url' => route('payment.cancel'),

                'total' => $request->budget 

        ];  

        // dd($data);


        return $data;

    }

        /**

     * Responds with a welcome message with instructions

     *

     * @return \Illuminate\Http\Response

     */

    public function payment()    {

        $data = $this->projectData();

        $provider = new ExpressCheckout;

        $response = $provider->setExpressCheckout($data);

        dd($response);

        // $response = $provider->setExpressCheckout($data, true);


        return redirect($response['paypal_link']);

    }

僅當您來自請求時,而不是從請求的函數調用另一個函數時,才可以使用依賴項注入,如果您要這樣做,請嘗試我的方法,或者將您的請求添加到處理此請求的主控制器并傳遞給其他方法。


查看完整回答
反對 回復 2023-09-08
  • 2 回答
  • 0 關注
  • 107 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號