如何从 Laravel 中的函数传递视图和 json?

问题描述 投票:0回答:3

这是我的职责

    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 列表传递给视图。 我该怎么办??

php json ajax laravel laravel-4
3个回答
2
投票

希望这是您想要的: 请不要直接使用$_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 官方文档

了解更多相关信息

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


0
投票

你也可以使用

$results = DB::table('franchises')
    ->whereIn('id', $id_array)
    ->get()
    ->toJson();
© www.soinside.com 2019 - 2024. All rights reserved.