我试图将一个数组的值从一个方法传递给Laravel中的另一个方法.基本上我有一个名为orderingSubmission的方法从Ajax POST执行中接收一个数组(该部分工作正常),但后来我试图将数组值传递给另一个名为orderingSubmissionReceipt的方法,这样我最终可以在order-summary上呈现视图页.我正在使用会话,但它们似乎不起作用.有人能告诉我我想念的是什么吗?
这是我的route.php
Route::get('/', function() { return redirect('home'); });
Route::get('home', 'HomeController@home');
Route::post('home', 'HomeController@activateCustomer');
Route::post('order-summary', 'HomeController@OrderingSubmission');
Route::get('order-summary', 'HomeController@orderingSubmissionReceipt');
HomeController.php
public function orderingSubmission(Request $request)
{
$allValues2 = $request->get('users'); // This code works fine. It gets the array
Log::info('This is orderingSubmission.....: ' . print_r($allValues2, true));
Session::set('allValues2',$allValues2);
}
public function orderingSubmissionReceipt()
{
$allValues3 = Session::get('allValues2'); // This code is not getting the session value
Log::info('This is orderingSubmissionReceipt.....: ' . print_r($allValues3, true));
return view('order-summary', [
'people' => $allValues3
]);
}
解决方法:
您可以创建类变量,如下所示:
class A
{
private $allValues2 = array();
function orderingSubmission(Request $request)
{
$this->allValues2 = $request->get('users');
//the rest of the code in this method..
}
function orderingSubmissionReceipt()
{
//if you want to make a local variable first, you can do it like this:
$allValues3 = $this->allValues2;
Log::info('This is orderingSubmissionReceipt.....: ' . print_r($allValues3, true));
//or, you can just use the variable directly, like this:
Log::info('This is orderingSubmissionReceipt.....: ' . print_r($this->allValues2, true));
}
}
标签:php,laravel,laravel-5
来源: https://codeday.me/bug/20190527/1166564.html