这是我的职责
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 列表传递给视图。 我该怎么办??
希望这是您想要的: 请不要直接使用$_POST或$_GET而是使用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));
为了将多个值传递给视图,请阅读Laravel 官方文档
了解更多相关信息首先你应该使用
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
。
你也可以使用
$results = DB::table('franchises')
->whereIn('id', $id_array)
->get()
->toJson();