2016-04-18 10 views
0

私のウェブサイトに誰もが複数の都市を選択でき、そのIDはカンマ区切りでデータベースに送られますが、国名を見つけるためにcakephpに参加すると、 name.Thisはテーブルcakephpに対応するidを持つ国名を見つける方法

Array 
(
[0] => Array 
    (
     [job_posting_lists] => Array 
      (
       [id] => 1 
       [firm_id] => 1 
       [job_title] => Software Engineer 
       [number_opening] => 10 
       [job_details] => American Express is embarking 
       [keyword] => java,Hadoop 
       [min_work_exp] => 1 
       [max_work_exp] => 3 
       [currency] => S$ 
       [ctc_from] => 10000 
       [ctc_to] => 15000 
       [other_ctc_details] => Incentives 
       [job_loc_country] => 101,123,45,56 
       [job_loc_state] => 
       [job_loc_city] => 
       [select_industry] => 4 
       [skill] => 1 
       [key_skill_name] => 13 
       [designation] => 18 
       [job_type] => Full time 
       [ug_qualification] => 1,11 
       [ug_stream] => Computer 
       [pg_qualification] => 2 
       [docterate] => Ph.D 
       [reference_code] => 0 
       [reference_name] => 
       [added_on] => 2016-04-18 12:15:58 
       [slug] => software-engineer 
       [status] => 0 
       [verify] => 0 
      ) 

    ) 

で私が使用を見つけたとき、受信した出力(「すべて」)で、これは国の名前に

$requests = $this->job_posting_lists->find('all', array('joins' => array(
array(
    'table' => 'countries', 
    'alias' => 'cu', 
    'type' => 'inner', 
    'foreignKey' => false, 
    'conditions'=> array('cu.id = job_posting_lists.job_loc_country','FIND_IN_SET(cu.id,job_posting_lists.job_loc_country)') 
), 

を見つけるために私のCakePHPのクエリであると私は何をすべきか空の配列を受け取りました。助けてください。

+0

使用しているcakephpのバージョンは、常に含めます。 – Dave

答えて

0

最高の解決策は、単一のフィールドに国のリストを格納するのではなく、データ構造を正規化して別のレコードに格納することです。

迅速な解決策は、わずかに異なり、あなたがやったよりも、結合式でFIND_IN_SET()関数を使用することです:

FIND_IN_SET(cu.id,job_posting_lists.job_loc_country)>0 

cu.id = job_posting_lists.job_loc_country基準は削除する必要があります。

関連する問題