gpt4 book ai didi

php - 在搜索结果中显示 2 列中 1 个表的信息。 (PHP-拉拉维尔)

转载 作者:行者123 更新时间:2023-11-30 21:34:24 26 4
gpt4 key购买 nike

我有一个网页,可以让你浏览不同的工作机会,这些工作机会保存在一个名为 “jobs” 的 MySQL 表中

“jobs” 有不同的列,其中一列是 “basic” 用于正常工作,“op2” 用于高级职位。

在执行搜索时,我试图能够在我的结果中显示这两个类别,但是我只能显示一个,不能同时显示两个。

我能够使用以下方法显示这两个作业:


$premium_jobs = Posts::where('title', 'like', '%' . $request->q . '%')->where('type', 'op2')->where('status', 'active')->orderBy('id', 'desc')->take(3)->get();

但是,当使用过滤器搜索特定词时,它适用于基本职位,但显​​示所有高级职位而不应用任何过滤器。


一些无效的查询:

  • 搜索基本职位,但无论搜索什么内容,始终显示所有高级职位:

    $premium_jobs = Posts::where('title', 'like', '%' . $request->q . '%')->where('type', 'op2')->where('status', 'active')->orderBy('id', 'desc')->take(3)->get();

    Example

  • 不显示高级职位,只显示基本职位:

    $premium_jobs = Posts::where('title', 'like', '%' . $request->q . '%')->where('type', 'op2')->where('type', 'basic')->where('status', 'active')->orderBy('id', 'desc')->take(3)->get();

    Example

  • 不显示基本职位,只显示高级职位:

    $premium_jobs = $jobs->where('type', 'op2')->where('status', 'active')->paginate(15);

    Example

  • 显示高级职位和基本职位,但还将基本职位的副本显示为高级职位:

    $premium_jobs = $jobs->where('status', 'active')->paginate(15);

    Example


Controller :

<?php  

class SearchController extends Controller
{

public function index(Request $request){

$jobs = new Posts();
if ($request->has('q')) {
$jobs = $jobs->where('title', 'like', '%' . $request->q . '%');
}

if (!empty($request->city)) {
$city = Cities::where('name', $request->city)->first();
$jobs = $jobs->where('city_id', $city->id);
}

if (!empty($request->min_salary)) {
$jobs = $jobs->where('salary', '>', $request->min_salary);
}

if (!empty($request->jt)) {
$job_type = JobTypes::where('name', $request->jt)->first();
$jobs = $jobs->where('job_type_id', $job_type->id);
}

if (!empty($request->ex)) {
$jobs = $jobs->where('experience', $request->ex);
}

if (!empty($request->cat)) {
$category = Categories::where('name', $request->cat)->first();
$jobs = $jobs->where('cat_id', $category->id);
}


// PREMIUM JOBS

$premium_jobs = $jobs->where('status', 'active')->paginate(15);


// BASIC JOBS

$basic_jobs = $jobs->where('type', 'basic')->where('status', 'active')->paginate(15);

$cities = Cities::all();
$job_types = JobTypes::all();
$categories = Categories::all();

return view('search.index', compact('basic_jobs', 'premium_jobs', 'request', 'cities', 'job_types', 'categories'));
}

?>

任何见解将不胜感激!

提前致谢。

最佳答案

你有其他工作类型吗??如果没有试试这个

Posts::where('title', 'like', '%' . $request->q . '%')->where('status', 'active')->orderBy('id', 'desc')->take(3)->get();

关于php - 在搜索结果中显示 2 列中 1 个表的信息。 (PHP-拉拉维尔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54720649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com