我正在尝试将带有数据库信息的变量从控制器传递给视图。
public function getPrivateCount($term) {
$data["private_count"] = '0';
$privateCount = \DB::table("users")->where("username", "LIKE", "%". $term . "%")
->orWhere("firstName", "LIKE", "%". $term . "%")
->orWhere("lastName", "LIKE", "%". $term . "%")
->orWhere("displayName", "LIKE", "%". $term . "%")
->where("private", true)
->count();
if($privateCount){
$data['private_count'] = $privateCount;
}
return view('search.hl')->with($data);
}
在视图上调用它:
<div>Testing: [[ $private_count ]]</div>
但我得知变量不存在:
未定义变量:private_count(查看:/var/www/build/resources/views/search/hl.blade.php)
为什么会发生这种情况,我做错了什么?
答案 0 :(得分:3)
要考虑两件事。
首先正确传递数据
return view('search.hl')->with(['data' => $data]);
然后阅读你的变量:
<div>Testing: {{ $data['private_count'] }}</div>
答案 1 :(得分:0)
你也可以使用:
return view('search.hl', compact('data'));
如果你想传递多个变量,可以像这样扩展:
return view('search.hl', compact('data', 'data2'));
如果你问我,有点干净。 Laravel会检测你想做什么。如果有一个名为data的变量,它将被传递给具有相同名称的视图。