简体   繁体   English

如何在一个使用Laravel的控制器中将数据从一个功能传递到另一个功能?

[英]how to pass data from one function to another, in one controller using Laravel?

I have one post, if the post is successful it will output data2 "$ result ['STATUS_CODE'] == 200", how do you pass the newly obtained data to another function? 我有一个帖子,如果发布成功,它将输出data2“ $ result ['STATUS_CODE'] == 200”,如何将新获取的数据传递给另一个函数?

public function createPassanger(Request $request){
        $api       = new Api;
        $input     = $request->all();
        $platform  = "W";
        $id_flight = Session::get('id_flight');
        $url       = config::get('constants.url')."api/passanger/add";

        //this is my post
        $post = array(
            "passanger_name"      => $input['name'], 
            "passanger_email"     => $input['email'],
            "passanger_passport"  => $input['passport'],
            "id_flight"           => $id_flight,
            "platform"            => $platform
        );

        $result = $api->post($url, $post);
        //this is results of the post
        if($result['STATUS_CODE'] == 200){
            $summary['id_summary']         = $result['DATA']['id_summary'];
            $summary['id_passanger']       = $result['DATA']['id_passanger'];
            $summary['id_flight']          = $result['DATA']['id_flight'];
            $summary['passanger_name']     = $result['DATA']['passanger_name'];
            $summary['passanger_passport'] = $result['DATA']['passanger_passport'];
            $summary['passanger_email']    = $result['DATA']['passanger_email'];
            $summary['order_id']           = $result['DATA']['order_id'];
            $summary['check_in']           = $result['DATA']['check_in'];
            $summary['status_booking']     = $result['DATA']['status_booking'];
            $summary['status']             = $result['DATA']['status'];
            $summary['member_id']          = $result['DATA']['member_id'];
            $summary['airlines_id']        = $result['DATA']['airlines_id'];
            $summary['airlines_name']      = $result['DATA']['airlines_name'];
            $summary['flight_no']          = $result['DATA']['flight_no'];
            $summary['airport_id']         = $result['DATA']['airport_id'];
            $summary['airport_name']       = $result['DATA']['airport_name'];
            $summary['pnr_ticket']         = $result['DATA']['pnr_ticket'];
            $summary['departure_time']     = $result['DATA']['departure_time'];
            $summary['departure_date']     = $result['DATA']['departure_date'];
            $summary['bag_amount']         = $result['DATA']['bag_amount'];
            $summary['price']              = $result['DATA']['price'];
            $summary['code']               = $result['DATA']['code'];
            $summary['symbol']             = $result['DATA']['symbol'];

            //I don't want to make a session
            // Session::put($summary);

            Session::flash('defaultSuccess', 'Success');
            Session::flash('textDefaultSuccess', ucfirst((strtolower($result['MESSAGE']))));

            return redirect()->route('summary');
        }else{
            Session::flash('defaultFailed', 'Create Summary Failed!');
            Session::flash('textDefaultFailed', ucfirst((strtolower($result['MESSAGE']))));
            return redirect()->route('passanger');
        }

    }

this is a function to hold data from the createPassanger function, 该函数用于保存createPassanger函数中的数据,

public function getDataSummary(){
        //function to save the post results from function createPassanger
        $data['title'] = "Summary";
        return view('v_summary', $data);
    }

this is a view from function getDataSummary,I do not want to save the data in the session 这是来自功能getDataSummary的视图,我不想在会话中保存数据

<div class="col-12">
            <table class="table borderless">
                <form action="{{route('payment')}}" method="POST">
                    @csrf
                    <input type="hidden" name="order_id" value="{{Session::get('order_id')}}">
                    <input type="hidden" name="price" value="{{Session::get('price')}}">
                    <input type="hidden" name="email" value="{{Session::get('passanger_email')}}">
                <tr>
                    <td>Passanger</td>
                    <td>:</td>
                    <td>{{Session::get('passanger_name')}}</td>
                </tr>
                <tr>
                    <td>Passport</td>
                    <td>:</td>
                    <td>{{Session::get('passanger_passport')}}</td>
                </tr>
                <tr>
                    <td>Country Issued</td>
                    <td>:</td>
                    <td>{{Session::get('airport_name')}}</td>
                </tr>
                <tr>
                    <td>Airline</td>
                    <td>:</td>
                    <td>{{Session::get('airlines_name')}}</td>
                </tr>
                <tr>
                    <td>Flight No</td>
                    <td>:</td>
                    <td>{{Session::get('flight_no')}}</td>
                </tr>
                <tr>
                    <td>PNR Ticket</td>
                    <td>:</td>
                    <td>{{Session::get('pnr_ticket')}}</td>
                </tr>
                <tr>
                    <td>Departure Airport</td>
                    <td>:</td>
                    <td>{{Session::get('airport_name')}}</td>
                </tr>
                <tr>
                    <td>Departure TIme</td>
                    <td>:</td>
                    <td>{{Session::get('departure_date')}} {{Session::get('departure_time')}}</td>
                </tr>
                <tr>
                    <td>Bag Required</td>
                    <td>:</td>
                    <td>{{Session::get('bag_amount')}}</td>
                </tr>
                <tr>
                    <td>Price</td>
                    <td>:</td>
                    <td>{{Session::get('symbol')}} {{Session::get('price')}}</td>
                </tr>
            </table>
            <button type="submit" class="btn btn-default btn-book btn-block">
                <p class="mb-0">NEXT</p>
            </button>
            </form>
        </div>

I have tried several times to get the results data from the post to be saved into getDataSummary but the result is an error of 500 我已经尝试过几次从帖子中获取结果数据以保存到getDataSummary中,但是结果是500错误

You can try this by using this code 您可以使用此代码尝试

    public function createPassanger(Request $request){
        $api       = new Api;
        $input     = $request->all();
        $platform  = "W";
        $id_flight = Session::get('id_flight');
        $url       = config::get('constants.url')."api/passanger/add";

        //this is my post
        $post = array(
            "passanger_name"      => $input['name'], 
            "passanger_email"     => $input['email'],
            "passanger_passport"  => $input['passport'],
            "id_flight"           => $id_flight,
            "platform"            => $platform
        );

        $result = $api->post($url, $post);
        //this is results of the post
        if($result['STATUS_CODE'] == 200){
            $summary['id_summary']         = $result['DATA']['id_summary'];
            $summary['id_passanger']       = $result['DATA']['id_passanger'];
            $summary['id_flight']          = $result['DATA']['id_flight'];
            $summary['passanger_name']     = $result['DATA']['passanger_name'];
            $summary['passanger_passport'] = $result['DATA']['passanger_passport'];
            $summary['passanger_email']    = $result['DATA']['passanger_email'];
            $summary['order_id']           = $result['DATA']['order_id'];
            $summary['check_in']           = $result['DATA']['check_in'];
            $summary['status_booking']     = $result['DATA']['status_booking'];
            $summary['status']             = $result['DATA']['status'];
            $summary['member_id']          = $result['DATA']['member_id'];
            $summary['airlines_id']        = $result['DATA']['airlines_id'];
            $summary['airlines_name']      = $result['DATA']['airlines_name'];
            $summary['flight_no']          = $result['DATA']['flight_no'];
            $summary['airport_id']         = $result['DATA']['airport_id'];
            $summary['airport_name']       = $result['DATA']['airport_name'];
            $summary['pnr_ticket']         = $result['DATA']['pnr_ticket'];
            $summary['departure_time']     = $result['DATA']['departure_time'];
            $summary['departure_date']     = $result['DATA']['departure_date'];
            $summary['bag_amount']         = $result['DATA']['bag_amount'];
            $summary['price']              = $result['DATA']['price'];
            $summary['code']               = $result['DATA']['code'];
            $summary['symbol']             = $result['DATA']['symbol'];

            //I don't want to make a session
            // Session::put($summary);
            $file = storage_path().'/data.json';
            $handle = fopen($file, 'w+');
            fwrite($handle, '');
            fwrite($handle, json_encode($summary);
            fclose($handle);

            Session::flash('defaultSuccess', 'Success');
            Session::flash('textDefaultSuccess', ucfirst((strtolower($result['MESSAGE']))));

            return redirect()->route('summary');
        }else{
            Session::flash('defaultFailed', 'Create Summary Failed!');
            Session::flash('textDefaultFailed', ucfirst((strtolower($result['MESSAGE']))));
            return redirect()->route('passanger');
        }

    }

and to get data in view 并获取数据

    public function getDataSummary(){
          $jsondata = array();
           $file = storage_path() . '/data.json';
        $handle = fopen($file, 'r');
        $size = filesize($file);
        if ($size > 0) {
            $str = fread($handle, $size);
            $jsondata = json_decode($str,true);
        }
        fclose($handle);
        //function to save the post results from function createPassanger
        $data['title'] = "Summary";
        return view('v_summary', compact('jsondata','data'));
    }
if($result['STATUS_CODE'] == 200){
   self::getDataSummary($result);
}

And in your function receive this array 并在您的函数中接收此数组

public function getDataSummary($result){
        //Handle your data
        $data['code'] = $result['DATA']['code'];
        return view('v_summary', $data);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将一些数据从一个函数传递到同一控制器中的另一个函数? -Laravel - How to pass some data from one function to another in same controller ? -Laravel 如何在Laravel中将值从一个控制器传递给另一个控制器 - How to pass a value from one controller to another controller in laravel 如何在Laravel中将变量从一个控制器传递到另一个控制器 - How to pass variable from one controller to another controller in laravel Laravel将变量从控制器中的1个函数传递给另一个函数 - Laravel pass variable from 1 function in controller to another one Laravel - 在控制器中将变量传递给另一个函数 - Laravel - In controller pass variable to one function to another 在laravel控制器中如何将变量从一个函数传递到另一函数 - in laravel controller how to pass variable from one function to other function 如何使用Laravel将变量从一个控制器传递到另一个控制器 - How to pass a variable from one controller to a another with Laravel 如何将值从一个 controller 传递到 LARAVEL 中的另一个? - How to pass value from one controller to another in LARAVEL? 如何通过使用会话将数据从一个功能传递到Codeigniter中的另一个功能? - How to pass data from one function to another in codeigniter by using session? 如何将数据一个 function 传递给 laravel 中的另一个 function? - How to pass the data one function to another function in laravel?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM