如何使用Laravel和Vue js搜索数据?
我想创建一个搜索栏,用户可以通过3列搜索和找到匹配的结果,职位、公司名称和国家 我能够使用computed属性通过其中一列创建搜索过滤器 问题是它只从job_title列返回匹配记录,而不是全部3列。有没有办法将多个列添加到此列表中? 我尝试了如何使用Laravel和Vue js搜索数据?,laravel,vue.js,Laravel,Vue.js,我想创建一个搜索栏,用户可以通过3列搜索和找到匹配的结果,职位、公司名称和国家 我能够使用computed属性通过其中一列创建搜索过滤器 问题是它只从job_title列返回匹配记录,而不是全部3列。有没有办法将多个列添加到此列表中? 我尝试了返回jobPost.match(this.search)而不是返回jobPost.job\u title.match(this.search)以获取整个表,但这只是返回了一个错误 data() { return {
返回jobPost.match(this.search)
而不是返回jobPost.job\u title.match(this.search)
以获取整个表,但这只是返回了一个错误
data() {
return {
jobPosts: [],
search: ''
};
},
CandidateSearchController.php文件:
public function search(Request $request)
{
$search = $request->get('q');
$jobPosts = JobPost::with('employerprofile')
->where('job_title', 'like', '%'.$search.'%')
->get();
return Response::json(array(
'jobPosts' => $jobPosts,
), 200);
}
搜索输入和按钮:
<input type="text" v-model="search" placeholder="Search job titles.."/>
<button class="btn btn-primary" style="padding: 7px 10px; margin-top: -1px;">
<i class="fas fa-search"></i>
</button>
由于您只有一个输入,因此可以使用或sql查询本身将给定字符串与职务、公司和国家匹配
public function search(Request $request)
{
$search = $request->get('q');
$jobPosts = JobPost::with('employerprofile')
->where('job_title', 'like', '%'.$search.'%')
->where(function($q) {
$q->where('job_title', 'like', '%'.$search.'%')
->orWhere('company_name', 'like', '%'.$search.'%');
->orWhere('country', 'like', '%'.$search.'%');
})
->get();
return Response::json(array(
'jobPosts' => $jobPosts,
), 200);
}
public function search(Request $request)
{
$search = $request->get('q');
$jobPosts = JobPost::with('employerprofile')
->where('job_title', 'like', '%'.$search.'%')
->where(function($q) {
$q->where('job_title', 'like', '%'.$search.'%')
->orWhere('company_name', 'like', '%'.$search.'%');
->orWhere('country', 'like', '%'.$search.'%');
})
->get();
return Response::json(array(
'jobPosts' => $jobPosts,
), 200);
}