如何从控制器传递数据以在Laravel中查看?

时间:2019-02-25 12:22:13

标签: php jquery ajax laravel laravel-5

我需要从控制器传递数据才能查看此代码:

控制器:

function requete()
{
    $id = Str::random();  
    return view('Demo.requete', compact('id'));
}

查看:

$(document).ready(function() {   
    $.ajax({
        url: "{{ route('support.requete') }}",
        method: "get",
        data: data,
        dataType: "json",
        success: function(data)
        {
            $('#code').html(data.id);//nothing happens here
        }
    });
});

我不断收到此错误:

enter image description here

4 个答案:

答案 0 :(得分:3)

您可以:

return view('Demo.requete', compact('id'));

然后,您可以直接在刀片文件中使用{{ $id }}

更新:

您正在使用ajax,因此需要一个json响应:

return response()->json(compact('id'), 200);

那么您就可以成功实现ajax:

$('#code').html(data.id);

答案 1 :(得分:2)

您不应返回带有Ajax请求的视图,而应该使用$ .ajax get请求进行点击。然后Laravel可以返回JSON响应,您可以在成功回调中使用它。

return response()->json([‘id’ => $id]);

答案 2 :(得分:0)

您不应在视图中使用 echo 。 您不应该使用ajax来获取视图(除非您想接收HTML,并且这里似乎不是这种情况) 如果要异步获取数据,则应为ajax请求使用不同的终结点,否则,只需返回包含所需所有数据的视图即可。

答案 3 :(得分:0)

对于ajax,请尝试返回响应json

function requete()
{
    $id = Str::random();
    return response()->json([
     "id" => json_encode($id)
   ]);
}