如果存在这些变量中的任何一个,我想基于“keyword”或“experience”或“location”搜索查询在Laravel上编写搜索查询。基于laravel中是否存在post变量的搜索查询
我调用Ajax实现这一
jobsController.php
public function homepageSearch() {
$_POST = json_decode(file_get_contents('php://input'), true);
$jobs = Jobs::latest('created_at')->search()->get();
echo $jobs;
}
型号jobs.php
class Jobs extends Model {
public function scopeSearch($query) {
$query->where('job_title', 'like', '%'.$_POST['keyword'].'%')
->orWhere('job_description', 'like', '%'.$_POST['keyword'].'%');
if(isset($_POST['keyword'])) {
$query->where('job_title', 'like', '%'.$_POST['keyword'].'%')
->orWhere('job_description', 'like', '%'.$_POST['keyword'].'%');
}
if(isset($_POST['experience'])) {
$query->where('min_exp', $_POST['experience'])
->orWhere('max_exp', $_POST['experience']);
}
if(isset($_POST['city'])) {
$query->where('job_location','like','%'.$_POST['city'].'%');
}
}
}
我想关键字或城市的基础上,搜索或经验是在laravel中实现这一点的正确方法?
我是Laravel的新手。你能用这个建议我吗?从你的控制器使用以下
当然它会抛出错误。 1它不是一个好的方法来使用2.因为你已经修复了不应该是空的键,如果它是空的,它会抛出错误3.如果这是空的什么基础上搜索将工作? –
它应该根据关键字或经验或城市进行搜索。如果在搜索过程中使用isset($ _ POST ['keyword']),则会删除错误。您可以建议我以更好的方式实现此目的。提前感谢。 –
在if条件 –