Skip to content

More ergonomical insert() and update() methods?

Reaguji na diskuzi z !60 (merged):

Pokud se to používá často, dávalo by smysl mít tu v konstrukturo optional parametry přes pojmenované parametry -> pak je možné použít jako one-liner v updateBy

Moje postřehy z praxe (v novém ivy kódu už používám nové metody): díky tomu triku s pojmenovanými parametry a výchozími hodnotami prakticky vždycky vyrábím changes na první dobrou a nepotřebuju už potom volat modify*() metody. V kódu pak obvykle vzniká

$table->update(
    $table->edit(
        $row,
        field: $value,
        anotherField: false,
        // ...
    ),
);

Trochu se vrátím k myšlence, kterou jsme zkoumali v !50 (merged): možná bychom pro tenhle (nejběžnější) use case mohli mít zkratku. Třeba že by metody insert() a update() (a updateBy() zrovna tak) nepřijímaly changes, ale jednotlivé parametry, a changes si vytvořily interně.

Pro ty složitější případy bychom zachovali new() a edit() jako changeset factories a na tabulce metodu save(), která by akceptovala právě jen changes.

cc @jkuchar1