Wie würde so ein Controller aussehen? Etwa so?
PHP-Code:
// Beispiel: system/modules/mein_modul/src/Controller/Api/MemberController.php
namespace Contao\Module\MeinModul\Controller\Api;
use Contao\CoreBundle\Controller\AbstractController;
use Contao\MemberModel;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class MemberController extends AbstractController
{
/**
* @Route("/api/create-member", name="api_create_member", methods={"POST"})
*/
public function createMember(Request $request)
{
// Daten aus dem JSON-Request extrahieren
$data = json_decode($request->getContent(), true);
// Überprüfen Sie, ob die erforderlichen Daten vorhanden sind
if (empty($data['username']) || empty($data['email'])) {
return new JsonResponse(['error' => 'Benutzername und E-Mail sind erforderlich.'], 400);
}
// Überprüfen Sie, ob der Benutzer bereits existiert
if (MemberModel::findBy('username', $data['username']) || MemberModel::findBy('email', $data['email'])) {
return new JsonResponse(['error' => 'Benutzer existiert bereits.'], 400);
}
// Neues Mitglied erstellen
$member = new MemberModel();
$member->username = $data['username'];
$member->email = $data['email'];
// Passwort setzen (optional)
if (!empty($data['password'])) {
$member->password = password_hash($data['password'], PASSWORD_BCRYPT);
}
// Weitere Mitgliederdaten setzen
// Speichern Sie das Mitglied
$member->save();
// Erfolgreiche Antwort
return new JsonResponse(['success' => true, 'message' => 'Mitglied erfolgreich erstellt.']);
}
}
Lesezeichen