-
-
Save ziplizard/0e22eb0202e81cded8aa to your computer and use it in GitHub Desktop.
<?php | |
// in LinkedinPerson | |
public $hasMany = array( | |
'LinkedinRecommendation' => array( | |
'className' => 'LinkedinRecommendation', | |
'foreignKey' => false, | |
'dependent' => true, | |
), | |
) | |
// in LinkedinRecommendation | |
public $belongsTo = array( | |
'LinkedinPerson' => array( | |
'className' => 'LinkedinPerson', | |
'foreignKey' => false, | |
'conditions' => array('LinkedinPerson.linkedin_id = LinkedinRecommendation.linkedin_id'), | |
), | |
); | |
// the find | |
$res = $this->LinkedinPerson->find('first', array('contain'=>array('LinkedinRecommendation'), 'conditions'=>array('LinkedinPerson.id'=>35))); | |
// have also tried | |
$res = $this->Person->find('first', array('contain'=>array('LinkedinPerson.LinkedinRecommendation'), 'conditions'=>array('LinkedinPerson.id'=>35))); | |
// but get error on relationship of LinkedinPerson to LinkedinRecommendation |
when I set 'foreignKey' => 'linkedin_id' on both sides it returns NO recommendations and shows this in the logs:
SELECT LinkedinRecommendation
.id
, LinkedinRecommendation
.created
, LinkedinRecommendation
.modified
, LinkedinRecommendation
.linkedin_id
, LinkedinRecommendation
.recommendation_id
, LinkedinRecommendation
.recommendation_type
, LinkedinRecommendation
.recommendation_text
, LinkedinRecommendation
.recommender_name
FROM healthfundr_dev
.linkedin_recommendations
AS LinkedinRecommendation
WHERE LinkedinRecommendation
.linkedin_id
= (35)
You can see the foreignKey set to "linkedin_id" uses the id from the parent instead of the linkedin_id from the parent. 35 is the id. Not sure what I need to do.
CREATE TABLE linkedin_persons
(
id
int(11) NOT NULL AUTO_INCREMENT,
person_id
int(11) NOT NULL,
created
datetime NOT NULL,
modified
datetime NOT NULL,
linkedin_id
varchar(80) DEFAULT NULL,
headline
varchar(255) DEFAULT NULL,
location_name
varchar(255) DEFAULT NULL,
location_country_code
varchar(80) DEFAULT NULL,
main_address
varchar(255) DEFAULT NULL,
industry
varchar(80) DEFAULT NULL,
picture_url
varchar(255) DEFAULT NULL,
email_address
varchar(255) DEFAULT NULL,
first_name
varchar(80) DEFAULT NULL,
last_name
varchar(80) DEFAULT NULL,
maiden_name
varchar(80) DEFAULT NULL,
formatted_name
varchar(80) DEFAULT NULL,
phonetic_first_name
varchar(80) DEFAULT NULL,
phonetic_last_name
varchar(80) DEFAULT NULL,
formatted_phonetic_name
varchar(80) DEFAULT NULL,
summary
text,
public_profile_url
varchar(255) DEFAULT NULL,
num_connections
int(11) DEFAULT NULL,
num_connections_capped
int(11) DEFAULT NULL,
specialties
varchar(255) DEFAULT NULL,
site_standard_profile_request_url
varchar(255) DEFAULT NULL,
api_standard_profile_request_url
varchar(255) DEFAULT NULL,
api_standard_profile_request_header_name
varchar(80) DEFAULT NULL,
api_standard_profile_request_header_value
varchar(80) DEFAULT NULL,
PRIMARY KEY (id
),
UNIQUE KEY u_linkedin_id
(linkedin_id
) USING BTREE,
KEY idx_person_id
(person_id
)
) ENGINE=MyISAM AUTO_INCREMENT=36 DEFAULT CHARSET=utf8
CREATE TABLE linkedin_recommendations
(
id
int(11) NOT NULL AUTO_INCREMENT,
created
datetime NOT NULL,
modified
datetime NOT NULL,
linkedin_id
varchar(80) DEFAULT NULL,
recommendation_id
int(11) DEFAULT NULL,
recommendation_type
varchar(80) DEFAULT NULL,
recommendation_text
text,
recommender_name
varchar(80) DEFAULT NULL,
PRIMARY KEY (id
),
KEY idx_linkedin_id
(linkedin_id
)
) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=utf8
when I do a simple LinkedinPerson->find() it returns that LinkedinPerson but returns ALL recommendations. The custom condition is not working at all. Ideas?