在laravel中搜索列名以获取行

时间:2018-03-22 19:51:38

标签: 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();
}

1 个答案:

答案 0 :(得分:1)

$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);
    }
}