•  119

Symfony - rand ()

W jaki sposób pobrać losowy rekord w Symfony, używając Query Buildera?

Odpowiedź na te pytanie została znaleziona na niżej wymienionych stronach:

Podsumowywujać - QB z biblioteki Doctrine 2 nie działa tak jak "surowy" MySql i trzeba zainstalować dodatek, aby uzyskać dostęp do niektórych funkcji.

composer require beberlei/DoctrineExtensions

Następnie należy dodać konfigurację np. w pliku config.yml

# Doctrine Configuration
doctrine:
    dbal:
        driver: pdo_mysql
        host: '%database_host%'
        port: '%database_port%'
        dbname: '%database_name%'
        user: '%database_user%'
        password: '%database_password%'
        charset: UTF8
        # if using pdo_sqlite as your database driver:
        #   1. add the path in parameters.yml
        #     e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite'
        #   2. Uncomment database_path in parameters.yml.dist
        #   3. Uncomment next line:
        #path: '%database_path%'

    orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        dql:
          numeric_functions:
            rand: DoctrineExtensions\Query\Mysql\Rand