I have this repository, which works per se:
<?php
namespace HomeinfoSysMon2DomainRepository;
use TYPO3CMSCoreDatabaseConnection;
use TYPO3CMSCoreDatabaseConnectionPool;
use TYPO3CMSExtbaseUtilityDebuggerUtility;
use TYPO3CMSExtbasePersistenceRepository;
use TYPO3CMSExtbasePersistenceQueryResultInterface;
final class CheckResultsRepository
{
public function __construct(
private readonly ConnectionPool $connectionPool
) {
}
public function findBySystem(int $system) {
$queryBuilder = $this->connectionPool->getQueryBuilderForTable('checkresults');
$result = $queryBuilder
->select('*')
->from('checkresults')
->where(
$queryBuilder->expr()->eq(
'system',
$queryBuilder->createNamedParameter($system, Connection::PARAM_INT)
)
)
->executeQuery();
return $result->fetchAll();
}
}
However, the data returned by fetchAll() is an array of associative arrays representing the table columns.
I have this model:
<?php
namespace HomeinfoSysMon2DomainModel;
use TYPO3CMSExtbaseDomainObjectAbstractEntity;
class CheckResults extends AbstractEntity
{
/**
* @var int $id
*/
public $id;
/**
* @var DateTime $timestamp
*/
public $timestamp;
/**
* @var int $system
*/
public $system;
/**
* @var bool $icmp_request
*/
public $icmp_request;
/**
* @var string $ssh_login
*/
public $ssh_login ;
/**
* @var string $http_request
*/
public $http_request;
/**
* @var string $application_state
*/
public $application_state;
/**
* @var string $smart_check
*/
public $smart_check;
/**
* @var string $baytrail_freeze
*/
public $baytrail_freeze;
/**
* @var string $fsck_repair
*/
public $fsck_repair;
/**
* @var bool $application_version
*/
public $application_version;
/**
* @var int $ram_total
*/
public $ram_total;
/**
* @var int $ram_free
*/
public $ram_free;
/**
* @var int $ram_available
*/
public $ram_available;
/**
* @var string $efi_mount_ok
*/
public $efi_mount_ok;
/**
* @var int $download
*/
public $download;
/**
* @var int $upload
*/
public $upload;
/**
* @var string $root_not_ro
*/
public $root_not_ro;
/**
* @var string $sensors
*/
public $sensors;
/**
* @var bool $in_sync
*/
public $in_sync;
/**
* @var int $recent_touch_events
*/
public $recent_touch_events;
/**
* @var DateTime $offline_since
*/
public $offline_since;
/**
* @var DateTime $blackscreen_since
*/
public $blackscreen_since;
}
What is the correct way to make the above function yield instances of that model instead of associative arrays?