Donc, je suis nouveau pour gateau PHP. J'essaie de structurer ma base de données afin qu'un utilisateur puisse ajouter une activité à un lieu, mais si le lieu a déjà cette activité particulière, il n'ajoute pas l'enregistrement. Par exemple;Gâteau PHP ajoutant et éditant un enregistrement
Rose et couronne = Pin-Pong
Rose and Crown = billard
Rose and Crown = tennis de table
Au moment de vous pouvez avoir plusieurs fois le même des sites, même avec le même activity.For Exemple;
Rose et couronne = Pin-Pong
Rose and Crown = billard
Rose and Crown = tennis de table
Rose et couronne = Pin-pong
public function add()
{
$venueActivity = $this->VenueActivities->newEntity();
if ($this->request->is('post')) {
$venueActivity = $this->VenueActivities->patchEntity($venueActivity, $this->request->data);
if ($this->VenueActivities->save($venueActivity)) {
$this->Flash->success(__('The venue activity has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The venue activity could not be saved. Please, try again.'));
}
}
$venues = $this->VenueActivities->Venues->find('list', ['limit' => 200]);
$activities = $this->VenueActivities->Activities->find('list', ['limit' => 200]);
$this->set(compact('venues', 'venueActivity', 'activities'));
$this->set('_serialize', ['venueActivities']);
}
Je suis en mesure de travailler comment écraser complètement l'enregistrement pour qu'il n'y ait plus qu'un seul enregistrement pour le lieu (voir le code ci-dessous) mais j'en ai besoin pour écraser seulement l'enregistrement si la même activité a été entrée. Mais vous pouvez avoir toutes les différentes activités.
public function add()
{
$venueActivity = $this->VenueActivities->newEntity();
if($this->request->is('post')) {
$venueActivity = $this->VenueActivities->patchEntity($venueActivity, $this->request->data);
$oldVenueActivity = $this->VenueActivities->find()->where(['venue_id' => $venueActivity->venue_id]);
foreach($oldVenueActivity as $activity) {
$this->VenueActivities->delete($activity);
}
if ($this->VenueActivities->save($venueActivity)) {
$this->Flash->success(__('The venue activity has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The venue activity could not be saved. Please, try again.'));
}
}
$venues = $this->VenueActivities->Venues->find('list', ['limit' => 200]);
$activities = $this->VenueActivities->Activities->find('list', ['limit' => 200]);
$this->set(compact('venues', 'venueActivity', 'activities'));
$this->set('_serialize', ['venueActivities']);
}
Merci d'avance.