php - 在 Laravel 中搜索列名以获取行

标签 php mysql laravel laravel-5 laravel-5.3

我有两个表(工作,技能) 技能enter image description here 职位enter image description here

我想通过 laravel 按技能搜索工作。当我写 html 时 -> 1-(搜索列名称) 2-(获取该列等于 1 的行) 3-(获取职位,其中 job_id(表职位) = job_id(表技能)

我的代码

$search_name = $request->input('search');
$skillscolumns =  DB::getSchemaBuilder()->getColumnListing('skills');

//1
$query = Skill::select('*');
foreach($skillscolumns as $column) {
   $query->where($column, '=', $search_name);
}
$searchedColumn = $query->get();

//2
foreach ($searchedColumn  as  $value) {
    $skillRows = collect($value)->filter(function ($value){ return $value === 1;})->get();
}

//3
foreach ( $skillRows  as  $value) {
    $wantedJobs = Job::where('job_id',$value->job_id)->get();
}

最佳答案

$jobs = [];
if(in_array($request->search, (new Skill)->getFillable())){
    $ids = Skill::where($request->search, true)->get()->pluck('job_id');
    if($ids){
        $jobs = Job::find($ids);
    }
}

关于php - 在 Laravel 中搜索列名以获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49437294/

相关文章:

laravel - 将 Laravel Vue 组件编译成不同的 js 文件

php - 使用 Doctrine EntityRepository 中的魔术查找方法好吗?

php - 检查 PHP session 是否处于事件状态;

mysql - MAX函数为NULL时如何设置0?

mysql - Laravel:在查询中使用 WHERE CONCAT

Laravel 5.3 “group by count” 查询问题

php - Laravel `array_pluck` 任意键

PHP-HTML-CSS - 国际化和样式

javascript - 使用 SQL 查询中的 PHP 变量回显 JS 函数

mysql - Joomla 2.5.14 mysql - 内存问题