Je suis passé de cakephp2 à cakephp3. Ici, je ne peux pas comprendre, comment les données associées peuvent être stockées. J'ai une table appelée Orders et une table appelée Ordersarticles. Il y a une vue où les informations de commande et les articles de commande multiples sont intégrés. Maintenant je veux stocker les données dans le contrôleur.Cakephp 3 stocker les données associées
J'ai le code suivant
public function add(){
$order = $this->Orders->newEntity();
if ($this->request->is('post')) {
$order = $this->Orders->patchEntity($order, $this->request->getData());
$i = 0; //Index for each Field
foreach($order->Orderarticles['article_id'] as $oaarticleid){
$orderarticles = [
'article_id' => $oaarticleid,
'amount' => $order->Orderarticles['amount'][$i]
];
$i++;
}
$order['Orderarticles'] = $orderarticles;
//Store Order
if ($result = $this->Orders->save($order)) {
//Store orderArticles
$this->Flash->success(__('The order has been saved.'));
//return $this->redirect(['action' => 'index']);
}
$this->Flash->error(__('The order could not be saved. Please, try again.'));
}
Les orderArticles dans la boucle sont préparés pour le format. Cependant, quand je veux stocker l'information, seulement la commande, pas les articles de commande sont stockés. Je n'ai absolument aucune idée comment je peux également stocker les informations supplémentaires ...
J'ai également essayé de stocker d'abord la commande, obtenir l'id inséré et puis stocker les articles de commande. Mais j'ai totalement échoué. J'ai envie d'être nouveau dans Cakephp. Pouvez-vous m'aider?
Vous pouvez utiliser l'identifiant de la commande comme ceci: '$ orderId = $ result-> id' cela retournera l'identifiant de la commande sauvegardée. Vous pouvez maintenant utiliser '$ orderId' pour l'ajouter en tant que clé étrangère dans la table orderaticles. – CodeWhisperer
Je sais à ce sujet. Mais comment puis-je stocker les articles de commande? C'est mon problème! – DS87