我有一个显示所有客户的页面。它使用paginate,每页只显示16个客户端。因此,我提供了实时搜索功能。
执行搜索时,从结果中选择的选项会触发以下内容
select: function (event, ui) {
$.ajax({
url: "/returnClient",
type: "GET",
datatype: "html",
data: {
value : ui.item.value
},
success: function(data) {
$('.container').fadeOut().html(data.html).fadeIn();
}
});
}
基本上调用以下函数
public function returnClient(Request $request)
{
if($request->ajax()){
$selectedClient = $request->input('value');
$client = Client::where('clientName', $selectedClient)->first();
$html = View::make('clients.search', $client)->render();
return Response::json(array('html' => $html));
}
}
如果我输出上面的客户端变量,我可以看到这个特定客户端的所有细节。然后将其传递给部分clients.search。 在clients.search中,如果我这样做
{{dd($client)}}
我得到Undefined变量:client。为什么它不能在视图中获得解析的对象?
非常感谢
答案 0 :(得分:3)
问题是您未正确地将$client
传递给视图。 Views documentation显示了如何通过关联数组正确传递数据。 API docs确认数组是预期的。
请改为:
public function returnClient(Request $request)
{
if($request->ajax()){
$selectedClient = $request->input('value');
$client = Client::where('clientName', $selectedClient)->first();
$html = View::make('clients.search', ['client' => $client])->render();
return Response::json(array('html' => $html));
}
}
此外,作为一种习惯,您可能需要考虑使用dump()
代替dd()
。