Skip to content

Instantly share code, notes, and snippets.

@ziplizard
Last active August 29, 2015 14:07
Show Gist options
  • Save ziplizard/0e22eb0202e81cded8aa to your computer and use it in GitHub Desktop.
Save ziplizard/0e22eb0202e81cded8aa to your computer and use it in GitHub Desktop.
belongsTo custom condition does not work
<?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
@ziplizard
Copy link
Author

when I do a simple LinkedinPerson->find() it returns that LinkedinPerson but returns ALL recommendations. The custom condition is not working at all. Ideas?

@ziplizard
Copy link
Author

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)

@ziplizard
Copy link
Author

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.

@ziplizard
Copy link
Author

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

@ziplizard
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment