Laut db_insert
Handbuchseite ist diese Funktion veraltet und es ist besser, die Drupal 8-Datenbankverbindung zum Einfügen zu verwenden.
Veraltet
ab Drupal 8.0.x wird es in Drupal 9.0.0 entfernt. Laden Sie stattdessen eine Datenbankverbindung aus dem Container in Ihren Dienst und rufen Sie insert () auf. Zum Beispiel $ injected_database-> insert ($ table, $ options);
Wie kann ich nun eine Datenbankverbindung und eine insert()
Aufrufmethode erhalten?
\Drupal::database()->insert(...);
?class PetmdController extends ControllerBase
Antworten:
Fügen Sie zum Injizieren des Datenbankdienstes die folgenden Methoden in Ihre Controller-Klasse ein / ändern Sie sie:
quelle
Um die Berdir-Antwort hier hinzuzufügen, können Sie Ihren Datenbankdienst in Ihren Controller einfügen
Sie können
core/lib/Drupal/Core/Database/Query
Klassen für weitere Informationen studierenquelle
Erstens, wie Ihr Zitat sagt, ist es für Drupal 9 veraltet . Dies bedeutet, dass es jahrelang bestehen bleibt und niemals von Drupal 8 entfernt wird.
Aber ja, es ist eine gute Idee, veraltete Funktionen zu vermeiden. Wie bei jeder anderen veralteten Funktion können Sie auch bei der Implementierung immer einfach nachsehen, wie die neue Vorgehensweise aussieht. Anstatt \ Drupal anzurufen, möchten Sie die Datenbank oder einen anderen Dienst, den Sie benötigen, einbinden, wenn dies möglich ist (wenn Sie sich in einem Dienst, einem Controller, einem Formular, einem Plugin usw. befinden).
quelle
Option 1:
Option 2
quelle