2016-08-27 16 views
0

私は3つのテーブル:candidate,positionおよびrecruitmentformを持っています。 Candidateidおよびpositionidは、recruitmentformテーブルの外部キーです。Laravel 5クエリビルダ限定

私は、すでに応募した職位に候補者が応募したときに、そのことができないはずです。私はこれのようなものを試しましたが、うまくいきません。あなたは

$check = DB::table('recruitmentform') 
    ->select('positionid') 
    ->where('candidateid',$cid) 
    ->get(); 

for ($i = 0; $i < count($check); $i++) { 
    if ($check[$i]->positionid == $pid) { 
     return redirect('/'); 
    } 
} 

しかし、ループ配列要素から名前で列を取得する必要があり

$check = DB::table('recruitmentform')->select('positionid')->where('candidateid',$cid)->get(); 

    for ($i = 0; $i < count($check); $i++) { 
     if ($check[$i] == $pid) { 
      return redirect('/'); 
     } 
    } 

答えて

0

は、アプリケーションのパフォーマンスが低下します。だから可能な限りループを避けるようにしてください。あなたはループを使わずに同じ結果を得るために以下を使うことができます

$application = DB::table('recruitmentform') 
    ->where('candidateid', $cid) 
    ->where('positionid', $pid) 
    ->first(); 

if (!is_null($application)) { 
    return redirect()->to('/'); 
} 
関連する問題