将数据传递给2个控制器,1返回视图,1返回JSON响应

时间:2015-03-26 11:47:29

标签: json laravel-5

我从视图中获取数据。

{!! Form::open() !!}
    {!! Form::input('date', 'from', date('Y-m-d'), array('class' => 'form-control')) !!}
    {!! Form::input('date', 'to', date('Y-m-d'), array('class' => 'form-control')) !!}
    {!! Form::submit('Go', array('class' => 'btn btn-warning')) !!}
 {!! Form::close() !!}

用户提交后,我有一个控制器来获取输入并返回一个视图。在我的ReportsController中,我有:

public function report(Request $request)
{

    $from = \Request::input('from');
    $to = \Request::input('to');

    $resources = Resource::where('resources.created_at', '>=', $from)
        ->where('resources.created_at', '<=', $to)
        ->get();

    return view('reports.index', compact('resources'));
}

但是,我想使用来自用户的相同数据输入来更新将在上面返回的reports.index视图中使用的json。在同一个控制器中,我希望有类似的东西:

public function json(Request $request)
{

    $from = \Request::input('from');
    $to = \Request::input('to');

    $resources = Resource::where('resources.created_at', '>=', $from)
        ->where('resources.created_at', '<=', $to)
        ->get();

    return Response::json(['data'=> $resources]);
}

我该如何做到这一点?非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

如果在同一视图中使用json,为什么不简单地将json传递给report()函数中的视图?

类似的东西:

public function report(Request $request)
{
    [....]
    return view('reports.index', compact('resources'))
       ->with('json'=>Response::json(['data'=> $resources]));
}