Open pa-de-solminihac opened 9 years ago
Pour le point 1 et la partie affichage du point 2, on pourrait revoir la partie chargement des clés étrangères ainsi :
// charge les valeurs pour les clés étrangères
$db = $this->getModel('db');
foreach ($this->_crud->fields as $tablefield => $fieldmeta) {
if (isset($this->_crud->metas['foreign_keys'][$tablefield])) {
list($ref_table, $ref_field) = explode('.', $this->_crud->metas['foreign_keys'][$tablefield]);
if (!empty($this->_crud->metas['keys_labels'][$ref_table . '.' . $ref_field])) {
$distincts = $db->distinct_values($ref_table, $ref_field, $this->_crud->metas['keys_labels'][$ref_table . '.' . $ref_field]);
$this->setFieldValues($this->_crud->metas['keys_labels'][$ref_table . '.' . $ref_field], $distincts);
} elseif ($this->getOption('autoload_foreign_keys_values')) {
$distincts = $db->distinct_values($ref_table, $ref_field);
$this->setFieldValues($tablefield, $distincts);
}
}
}
Code basé sur la version 5.6 : https://github.com/pa-de-solminihac/clementine-framework-module-crud/blob/5.6/ctrl/crudCrudController.php#L678
L'option
autoload_foreign_keys_values
ne sert pas à grand chose en l'état actuel des choses ; elle est encore moins utile si on ne définit pas dekeys_labels
dans la fonction _init :Pour avoir un peu plus d'intérêt, il faudrait :
keys_labels
pourrait suffire)