[英]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.