Похоже, что это возможно только путем изменения моделей _primary_key
на facebook_id
После изучения структуры класса ORM вы увидите, что таблицы объединены следующим образом
elseif (isset($this->_belongs_to[$column]))
{
$this->_load();
$model = $this->_related($column);
// Use this model's column and foreign model's primary key
$col = $model->_table_name.'.'.$model->_primary_key;
$val = $this->_object[$this->_belongs_to[$column]['foreign_key']];
$model->where($col, '=', $val)->find();
return $model;
}
Как вы упомянули, вы можете использовать
protected $_belongs_to = array('user' => array('foreign_key' => 'facebook_id')
Но это приведет к
answers.id = users.facebook_id
Но если вы измените первичный ключ в ответах с id на facebook_id, вот так
protected $_primary_key = 'facebook_id';
Тогда, конечно, последний запрос приведет к
answers.facebook_id = users.facebook_id