File tree Expand file tree Collapse file tree 2 files changed +19
-18
lines changed Expand file tree Collapse file tree 2 files changed +19
-18
lines changed Original file line number Diff line number Diff line change 77use Atk4 \Ui \App ;
88use Atk4 \Ui \Form ;
99use Atk4 \Ui \Js \JsToast ;
10- use Doctrine \DBAL \Platforms \MySQLPlatform ;
1110
1211/** @var App $app */
1312require_once __DIR__ . '/../init-app.php ' ;
2019 $ form ->entity ->save ();
2120 $ form ->entity ->setNull ($ form ->entity ->idField );
2221
23- // fix Behat for MySQL with unordered/normalized JSON
24- $ data = $ form ->entity ->get ();
25- if ($ form ->getApp ()->db ->getDatabasePlatform () instanceof MySQLPlatform) {
26- assert ($ form ->entity instanceof MultilineDelivery);
27- $ itemKey = $ form ->entity ->fieldName ()->item ;
28- if ($ data [$ itemKey ] !== null ) {
29- uksort ($ data [$ itemKey ], static function ($ a , $ b ) use ($ form ) {
30- $ fieldNamesOrder = array_flip (array_values (array_map (static fn ($ v ) => $ v ->getPersistenceName (), $ form ->entity ->item ->getFields ())));
31-
32- return $ fieldNamesOrder [$ a ] <=> $ fieldNamesOrder [$ b ];
33- });
34- }
35- }
36-
37- return new JsToast ($ form ->getApp ()->encodeJson ($ data ));
22+ return new JsToast ($ form ->getApp ()->encodeJson ($ form ->entity ->get ()));
3823});
Original file line number Diff line number Diff line change @@ -830,7 +830,24 @@ private function getExpressionValues(Model $entity): array
830830 return [];
831831 }
832832
833- $ dummyModel = new Model ($ entity ->getModel ()->getPersistence (), ['table ' => $ entity ->getModel ()->table , 'idField ' => false ]);
833+ $ dummyModel = new Model ($ entity ->getModel ()->getPersistence (), [
834+ 'table ' => new class ($ entity ->getModel ()->getPersistence ()) extends Model {
835+ public $ table = '' ;
836+
837+ #[\Override]
838+ public function action (string $ mode , array $ args = [])
839+ {
840+ assert ($ mode === 'select ' );
841+ assert ($ args === []);
842+
843+ $ query = Persistence \Sql::assertInstanceOf ($ this ->getPersistence ())->dsql ();
844+ $ query ->field ($ query ->expr ('[] ' , [1 ]));
845+
846+ return $ query ;
847+ }
848+ },
849+ 'idField ' => false ,
850+ ]);
834851
835852 $ createExprFromValueFx = static function ($ v ) use ($ dummyModel ): Persistence \Sql \Expression {
836853 if (is_int ($ v )) {
@@ -853,7 +870,6 @@ private function getExpressionValues(Model $entity): array
853870 'actual ' => $ field ->actual ,
854871 ]);
855872 }
856- $ dummyModel ->setLimit (1 ); // TODO must work with empty table, no table should be used
857873 $ values = $ dummyModel ->loadOne ()->get ();
858874 unset($ values [$ entity ->idField ]);
859875
You can’t perform that action at this time.
0 commit comments