protected function createConditionsFromKeys(Model $model, $condition_keys = [], $value_keys = []) { $condition_string = \implode('_and_', $condition_keys); $condition_values = \array_values($model->getValuesFor($value_keys)); // return null if all the foreign key values are null so that we don't try to do a query like "id is null" if (all(null, $condition_values)) { return null; } $conditions = SQLBuilder::createConditionsFromUnderscoredString(Table::load(\get_class($model))->conn, $condition_string, $condition_values); # DO NOT CHANGE THE NEXT TWO LINES. add_condition operates on a reference and will screw options array up if (isset($this->options['conditions'])) { $options_conditions = $this->options['conditions']; } else { $options_conditions = []; } return Utils::addCondition($options_conditions, $conditions); }