-
-
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?