mirror of
https://github.com/dg/dibi.git
synced 2025-08-03 12:47:33 +02:00
committed by
David Grudl
parent
7d82ce2ff6
commit
04bb5ede3d
@@ -326,6 +326,11 @@ XX
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// object-to-scalar procession
|
||||||
|
if ($value instanceof \BackedEnum && is_scalar($value->value)) {
|
||||||
|
$value = $value->value;
|
||||||
|
}
|
||||||
|
|
||||||
// with modifier procession
|
// with modifier procession
|
||||||
if ($modifier) {
|
if ($modifier) {
|
||||||
if ($value !== null && !is_scalar($value)) { // array is already processed
|
if ($value !== null && !is_scalar($value)) { // array is already processed
|
||||||
|
41
tests/dibi/Translator.enums.phpt
Normal file
41
tests/dibi/Translator.enums.phpt
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @phpVersion 8.1
|
||||||
|
* @dataProvider ../databases.ini
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Tester\Assert;
|
||||||
|
|
||||||
|
require __DIR__ . '/bootstrap.php';
|
||||||
|
|
||||||
|
$conn = new Dibi\Connection($config);
|
||||||
|
$translator = new Dibi\Translator($conn);
|
||||||
|
|
||||||
|
|
||||||
|
enum EnumInt: int
|
||||||
|
{
|
||||||
|
case One = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum EnumString: string
|
||||||
|
{
|
||||||
|
case One = 'one';
|
||||||
|
}
|
||||||
|
|
||||||
|
enum PureEnum
|
||||||
|
{
|
||||||
|
case One;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Assert::equal('1', $translator->formatValue(EnumInt::One, null));
|
||||||
|
|
||||||
|
Assert::equal(match ($config['driver']) {
|
||||||
|
'sqlsrv' => "N'one'",
|
||||||
|
default => "'one'",
|
||||||
|
}, $translator->formatValue(EnumString::One, null));
|
||||||
|
|
||||||
|
Assert::equal('**Unexpected PureEnum**', $translator->formatValue(PureEnum::One, null));
|
Reference in New Issue
Block a user