Die Frage ist: Möchten Sie die eingegebenen Daten bearbeiten, nachdem sie im Formular eingereicht wurden?
Fall Nr:
Ändern Sie die Aktion des Formulars an die externe API und lassen Sie die API die Anforderung behandeln.
// add.ctp
<?php
echo $this->Form->create("MyModel", [
"type" => "POST",
"url" => "link://to.external.api/"
]);
echo $this->Form->input(); // all fields
echo $this->Form->end("Submit");
?>
Fall ja:
// add.ctp (Just the regular form)
<?php
echo $this->Form->create("MyModel");
echo $this->Form->input(); // all fields
echo $this->Form->end("Submit");
?>
Und dann tun, was Sie mit den Daten in Ihrem Controller oder Modell wollen und dann cURL verwenden, um die Daten an die externe API zu schreiben:
PostsController.php
<?php
public function Add(){
// Manipulate the form data here before saving it (for example, has a password):
$this->request->data["MyModel"]["password"] = sha1($this->request->data["MyModel"]["password"]);
// And do a cURL request to post the data to the external API
$ch = curl_init("link://to.external.api/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($this->request->data["MyModel"]));
$response = curl_exec($ch);
curl_close($ch);
// You can do something with the response of the API here
debug($response);
}
?>
Ich möchte die REST-API als separate Datenquelle verwenden. Wie wir eine Datenquelle in der Datenbank.php für mysql erstellen. Ähnlich muss ich Datenquelle für REST API erstellen. Gibt es einen Weg dies zu tun? Jede Beispielimplementierung für diese Art von Dingen: http://book.cakephp.org/2.0/en/models/datasources.html –
Sie können, aber Sie müssen Ihre eigenen 'save()' und 'finden() 'Methoden. Passt das Beispiel hinter Ihrem Link nicht zu Ihren Bedürfnissen? – Koen