Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'utilise l'ORM

$messageTable = TableRegistry::get("TalkMessage");
            $room = $messageTable->association("TalkRoom")->get($data["room-id"]);
            $user = $messageTable->association("User")->get($this->Auth->getUser()->id);

            $message = $messageTable->newEntity([
                "content" => h($data["text"]),
                "User" => $user,
                "TalkRoom" => $room
            ]);

            if($messageTable->save($message)){
                $response->statusCode(201);
                $response->body([
                    "success" => true
                ]);
            }
class TalkMessageTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsTo("TalkRoom");
        $this->belongsTo("User");
    }
}

Ce que je veux

Je voudrais enregistrer le `$message dans la table

Ce que j'obtiens

J'obtiens une erreur SQL sur la clé TalkRoom

Cannot add or update a child row: a foreign key constraint fails 

2 réponses


Petit Up ;)

Bonjour.
As-tu fais une petite recherche sur internet concernant ton erreur ?
Car pour information, ce n'est pas spécifique à l'ORM de CakePHP, mais tout simplement à SQL.
Pour exemple : Apprendre avec SQLFacile! » 17.Les contraintes d'intégrité.