Korišćenje u klasi
Upiti se mogu izvlačiti u objekte zasnovane na korisničkim klasama. Na primer, ako imamo klasu pod nazivom ExampleClass, sledeći upit će vratiti objekte tipa ExampleClass.
$result = $connection->query("SELECT id, title FROM {example_table}", [], [ 'fetch' => 'ExampleClass', ]);
Ako klasa ima metod __construct(), objekti će biti kreirani, svojstva će biti dodata objektu, a zatim će biti pozvan metod __construct(). Na primer, ako imate sledeću klasu i upit.
class ExampleClass { function __construct() { // Uradi nešto } } $result = $connection->query("SELECT id, title FROM {example_table}", [], [ 'fetch' => 'ExampleClass', ]);
Objekat će biti kreiran, svojstva id i title će biti dodata objektu, a zatim će biti izvršen __construct(). Redosled ovih događaja povezan je sa bagom u PHP-u za verzije manje od 5.2.
Ako objekat ima metod __construct() koji treba izvršiti pre dodavanja svojstava objektu, sledeći primer pokazuje kako to uraditi.
$result = $connection->query("SELECT id, title FROM {example_table}"); foreach ($result->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'ExampleClass') as $record) { // Uradi nešto }
Argumenti koji se prosleđuju u fetchAll mogu se koristiti na isti način. PDO::FETCH_CLASS govori fetchAll da uzme vraćeni skup rezultata i doda vrednosti kao svojstva objektu tipa ExampleClass (drugi argument). PDO::FETCH_PROPS_LATE govori fetchAll da doda skup rezultata kao svojstva objektu nakon poziva __construct().
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.