【问题标题】:How to return the view in ajax in Laravel如何在 Laravel 的 ajax 中返回视图
【发布时间】:2020-01-06 01:31:27
【问题描述】:

我们使用 ajax 来调用 Laravel 中的控制器。喜欢:

$.ajax({
  type: 'POST',
  url: "url/url/",
  data: {
    _token: '{{ csrf_token() }}',
    action: 'get-some-view',
    data: {}
  },
  success: function(data) {
    $("#container").html(data.html);
  }
});

我们希望在控制器上做这样的事情:

return response()->json( [ 'code' => 0, 'data' => view('viewname')->with('foo ', $foo ), 'msg' => 'YEH!' ] , 200);

但我们得到的回应是

Object { code: 0, data: {}, msg: "YEH" }

我们的预期输出是视图生成的 HTML。这可能吗?

【问题讨论】:

    标签: php json laravel


    【解决方案1】:

    您需要渲染视图以获取 HTML。应该是——

    view('viewname')->with('foo ', $foo )->render()
    

    SO render() description

    【讨论】:

      【解决方案2】:

      render() 方法将为您提供原始 HTML。

      查看这里的方法View

      【讨论】:

        【解决方案3】:

        view() 函数只是创建 View 类的一个实例。渲染 HTML 字符串使用 render() 函数。

        $data = view('viewname')->with('foo', $foo)->render();
        return response()->json( [ 'code' => 0, 'data' => $data, 'msg' => 'YEH!' ] , 200);
        

        【讨论】:

          猜你喜欢
          • 2020-07-21
          • 2013-11-10
          • 2015-04-22
          • 2023-03-28
          • 2019-12-19
          • 2021-01-14
          • 2016-11-23
          • 2020-10-11
          • 2015-05-06
          相关资源
          最近更新 更多