2012-03-29 6 views
2

Ich muss IGNORE-Option zu saveAll() -Methode in CAKEPHP hinzufügen. Ich will eine genaue Implementation davon. Einige andere SO-Fragen wurden im Zusammenhang mit Validierungen beantwortet und isUnique() überprüft dies. Ich muss diese Bedingungen umsetzen, es ist mir egal, was dahinter vorgeht.Hinzufügen INSERT IGNORE-Anweisung zu CAKEPHP saveAll-Methode

Bitte beraten Sie mich.

Antwort

1

Der einzige Weg, ich denke, das möglich wäre, andere als die Verwendung der execute() Funktion von Ihrer Datenquelle zur Verfügung stellen, wenn Sie die Mysql Datenquellenklasse erweitert und verändert das Verhalten der create() und renderStatement() Funktionen Fall enthält, wo Sie wollen es an das SQL-Schlüsselwort IGNORE anhängen.

Sie möchten die Datenquellendatei in APP/Model/Datasource/ platzieren und es erweitert Mysql (vorausgesetzt, Sie verwenden CakePHP 2+). Sehen Sie sich die 2 Funktionen oben an. Ich würde nur einen Fall erstellen, bei dem 'createinore' statt 'create' verwendet wird, wenn renderStatement() aufgerufen wird, wenn eine bestimmte Option an create() übergeben wird.

Das heißt, es ist wahrscheinlich ein Weg, um zu erreichen, was Sie tun möchten, ohne durch so viele Probleme zu gehen. Wenn Sie näher erläutern, was Sie vorhaben, kann ich Ihnen vielleicht eine bessere Antwort geben.

+0

Ich benutze Kuchen 1.3.X. Ich habe diese Funktionen überprüft. Ich bin bereit, die Codebasis zu erweitern –

+0

@duke - Also, wenn Sie bereits die Codebasis erweitern, warum können Sie nicht tun, was ich oben geschrieben habe? Die Dateien für 1.3 sind fast identisch. Je nachdem, welche Sie verwenden, sollten Sie 'DboMysql' oder' DboMysqli' erweitern. Ich habe vergessen zu erwähnen, dass Sie die Konfigurationsdatei in 'APP/config/database.php' aktualisieren müssen, um auf Ihre neu erstellte Datenquelle zu zeigen. –

+0

Ich werde mein Bestes versuchen, –

Verwandte Themen