这是我的功能
if(isset($_POST['franchisesIds'])) {
$id_array = array();
foreach($_POST['franchisesIds'] as $data) {
array_push($id_array, (int)$data['id']);
}
$results = DB::table('franchises')->whereIn('id', $id_array)->get();
}
return Response::json(array($id_array));
return View::make('frontend.stores')->with('franchisesAll', $results);
所以我对如何传递所有这些数据感到有点困惑。我需要通过json来确保一切正常。同时我需要将一个id列表传递给视图。 我怎么能这样做?
答案 0 :(得分:2)
希望这是你想要的: 请勿直接使用$ _POST或$ _GET instead use Input
$franchisesIds = Input::get('franchisesIds');
$id_array = array();
if($franchisesIds) {
foreach( $franchisesIds as $data) {
array_push($id_array, (int)$data['id']);
}
$results = DB::table('franchises')->whereIn('id', $id_array)->get();
}
$jsonArray = json_encode($id_array);
return View::make('frontend.stores')->with(array('franchisesAll'=>$results,'idArrays'=>$jsonArray));
要将多个值传递给视图,请在the official Laravel documentation
中详细了解答案 1 :(得分:1)
首先,您应该使用Input::get('franchisesIds')
而不是$_POST['franchisesIds']
,也没有理由这样做foreach
循环:
foreach($_POST['franchisesIds'] as $data) {
array_push($id_array, (int)$data['id']);
}
因为这已经是一个数组而你正在从这个数组中构建另一个数组,所以没有任何意义。所以你可以试试这个:
if($franchisesIds = Input::get('franchisesIds')) {
$franchises = DB::table('franchises')->whereIn('id', $franchisesIds)->get();
}
然后将$franchisesIds
和result
传递给view
,您可以使用此功能:
return View::make('frontend.stores')
->with('franchises', $franchises)
->with('franchisesIds', $franchisesIds);
你也可以使用这样的东西(compact):
return View::make('frontend.stores', compact('franchises', 'franchisesIds'));
没有理由使用json_encode
对您的$franchisesIds
进行编码。
答案 2 :(得分:0)
您也可以使用
$results = DB::table('franchises')
->whereIn('id', $id_array)
->get()
->toJson();