possibilité de changer items dans getItemValues
This commit is contained in:
parent
a82143a41b
commit
d704ce8c07
@ -257,6 +257,10 @@ class CapacitorChannel implements ITransactor {
|
||||
* Retourner la clé primaire par cette méthode est l'unique moyen de
|
||||
* déclencher une mise à jour plutôt qu'une nouvelle création.
|
||||
*
|
||||
* Bien que ce ne soit pas prévu à la base, si on veut modifier $item dans
|
||||
* cette méthode pour des raisons pratiques, il suffit de retournerla valeur
|
||||
* modifiée avec la clé "item"
|
||||
*
|
||||
* Retourner [false] pour annuler le chargement
|
||||
*/
|
||||
function getItemValues($item): ?array {
|
||||
@ -337,7 +341,7 @@ class CapacitorChannel implements ITransactor {
|
||||
* Retourner [false] pour annuler le chargement (la ligne n'est pas créée)
|
||||
*
|
||||
* Si $item est modifié dans cette méthode, il est possible de le retourner
|
||||
* avec la clé "item" pour mettre à jour la ligne correspondante.
|
||||
* avec la clé "item" pour mettre à jour la colonne correspondante.
|
||||
*
|
||||
* la création ou la mise à jour est uniquement décidée en fonction des
|
||||
* valeurs calculées par {@link self::getItemValues()}. Bien que cette méthode
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace nulib\db;
|
||||
|
||||
use nulib\A;
|
||||
use nulib\cl;
|
||||
use nulib\db\_private\_migration;
|
||||
use nulib\php\func;
|
||||
@ -364,6 +365,9 @@ abstract class CapacitorStorage {
|
||||
$values = func::call([$channel, "getItemValues"], $item, ...$args);
|
||||
if ($values === [false]) return 0;
|
||||
|
||||
$newItem = A::pop($values, "item");
|
||||
if ($newItem !== null) $item = $newItem;
|
||||
|
||||
$row = cl::merge(
|
||||
$channel->getSum("item", $item),
|
||||
$this->serialize($channel, $values));
|
||||
|
@ -6,7 +6,6 @@ class _update extends _common {
|
||||
"prefix" => "?string",
|
||||
"table" => "?string",
|
||||
"schema" => "?array",
|
||||
"cols" => "?array",
|
||||
"values" => "?array",
|
||||
"where" => "?array",
|
||||
"suffix" => "?string",
|
||||
|
Loading…
x
Reference in New Issue
Block a user