Կիրառում դասում
Հարցումները կարելի է հանել օբյեկտների՝ հիմնվելով օգտագործողի դասերի վրա: Օրինակ, եթե ունենք դաս՝ ExampleClass անունով, ապա հետևյալ հարցումը կվերադարձնի exampleClass տեսակի օբյեկտներ։
$result = $connection->query("SELECT id, title FROM {example_table}", [], [ 'fetch' => 'ExampleClass', ]);
Եթե դասում կա __construct() մեթոդ, ապա օբյեկտները կստեղծվեն, հատկությունները կավելացվեն օբյեկտին, և ապա կկանչվի __construct() մեթոդը: Օրինակ, եթե ունեք հետևյալ դասն ու հարցումը։
class ExampleClass { function __construct() { // Կատարել ինչ-որ բան } } $result = $connection->query("SELECT id, title FROM {example_table}", [], [ 'fetch' => 'ExampleClass', ]);
Օբյեկտը կստեղծվի, id և title հատկությունները կավելացվեն օբյեկտին, և ապա կկատարվի __construct(): Այս իրադարձությունների հաջորդականությունը կապված է PHP-ում սխալի հետ 5.2-ից ցածր տարբերակների համար։
Եթե օբյեկտում կա __construct() մեթոդ, որը պետք է կատարվի մինչ հատկությունների ավելացումը օբյեկտին, ապա հետևյալ օրինակով ցույց է տրվում ինչպես դա անել։
$result = $connection->query("SELECT id, title FROM {example_table}"); foreach ($result->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'ExampleClass') as $record) { // Կատարել ինչ-որ բան }
fetchAll-ին փոխանցվող արգումենտները կարող են օգտագործվել նույն ձևով: PDO::FETCH_CLASS ասում է fetchAll-ին վերցնել վերադարձված արդյունքների հավաքածուն և հատկությունները ավելացնել որպես ExampleClass տեսակի օբյեկտի հատկություններ (երկրորդ արգումենտը): PDO::FETCH_PROPS_LATE ասում է fetchAll-ին հատկությունները ավելացնել օբյեկտին __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.