如何将数据从控制器传递到 laravel 中查看?
Posted
技术标签:
【中文标题】如何将数据从控制器传递到 laravel 中查看?【英文标题】:How to pass data from controller to view in laravel? 【发布时间】:2019-07-18 20:26:50 【问题描述】:我需要从控制器传递数据才能查看代码:
控制器:
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
);
);
我不断收到此错误:
【问题讨论】:
您想要查看结果还是随机字符串?因为答案取决于你想要的结果。 结果必须在视图内而不是视图内。 那么你应该选择 Mihir Bhende 的答案,因为他的答案就是你要找的。span> How to pass data to view in Laravel?的可能重复 【参考方案1】:你可以这样做:
return view('Demo.requete', compact('id'));
那么就可以直接在blade文件中使用 $id
了。
更新:
您正在使用 ajax,因此您需要一个 json 响应:
return response()->json(compact('id'), 200);
那么你就可以在ajax成功了:
$('#code').html(data.id);
【讨论】:
Uodated muy answer 您实际上不需要传递“data”和“dataType”,因为您对服务器端没有做任何事情。如果您尝试访问 data.id,则需要从服务器返回 JSON 响应而不是视图。请参阅下面关于如何做到这一点的答案。【参考方案2】:您不应该使用 Ajax 请求返回视图,这应该是使用 $.ajax 获取请求的不同路径。然后 Laravel 可以返回 JSON 响应,您可以在成功回调中使用它。
哟
return response()->json([‘id’ => $id]);
【讨论】:
【参考方案3】:您不应在视图中使用 echo。 您不应该使用 ajax 来获取视图(除非您想接收 HTML 并且这里似乎不是这种情况) 如果您想异步获取数据,您应该为您的 ajax 请求设置一个不同的端点,否则您可以返回包含您需要的所有数据的视图。
【讨论】:
【参考方案4】:如果是ajax,尝试返回响应json
function requete()
$id = Str::random();
return response()->json([
"id" => json_encode($id)
]);
【讨论】:
以上是关于如何将数据从控制器传递到 laravel 中查看?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 post 方法将数据从 ajax 传递到 laravel 5.2 控制器
Laravel 5.2 - 如何将变量(数组和整数)从视图传递到控制器?