mirror of
https://github.com/dg/dibi.git
synced 2025-07-31 19:30:30 +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
|
||||
if ($modifier) {
|
||||
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