Bonjour,
Je me retrouve dans un dilemme, il se trouve que j'ai un formulaire:
Qui doit me remplir un base de donnée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36<legend> <h3>Création d'un Programme</h3> </legend> <p> <label for="title">Titre du Programme :</label> <input type="text" name="title" id="title" /> </p> <p> <label for="description">Description du Programme :</label> <input type="text" name="description" id="description" /> </p> <p> <label for="adress">Adresse :</label> <input type="text" name="adress" id="adress" /> </p> <p> <label for="zipcode">Code Postal :</label> <input type="text" name="zipcode" id="zipcode" /> </p> <p> <label for="city">Ville :</label> <input type="text" name="city" id="city" /> </p> <p> <input id="file_upload" name="file_upload" type="file" /> </p> <p> <input type="submit" name="submit" value="Creer" /> </p> <p> <a href="<?php echo url_for('mon_compte/Accueil'); ?>">Retour</a> </p> </fieldset>
Mais pour me remplir celle-ci, elle doit réccupérer la valeur id de celle-ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 programme: _attributes: { phpName: Programme } id: { phpName: Id, type: INTEGER, size: '11', primaryKey: true, autoIncrement: true, required: true } name: { phpName: Name, type: VARCHAR, size: '100', required: false } address: { phpName: Address, type: VARCHAR, size: '255', required: false } delivery_date: { phpName: DeliveryDate, type: DATE, required: false } description: { phpName: Description, type: LONGVARCHAR, required: false } picture: { phpName: Picture, type: VARCHAR, size: '255', required: false } latitude: { phpName: Latitude, type: VARCHAR, size: '20', required: false } longitude: { phpName: Longitude, type: VARCHAR, size: '20', required: false } created_at: { phpName: CreatedAt, type: DATE, required: false } updated_at: { phpName: UpdatedAt, type: DATE, required: false } passerelle: { phpName: Passerelle, type: VARCHAR, size: '45', required: false } active: { phpName: Active, type: TINYINT, size: '1', required: false } agency_id: { phpName: AgencyId, type: INTEGER, size: '10', primaryKey: true, required: true, foreignTable: agency, foreignReference: id, onDelete: RESTRICT, onUpdate: RESTRICT } city: { phpName: City, type: BIGINT, size: '20', primaryKey: true, required: true, foreignTable: pays, foreignReference: id, onDelete: RESTRICT, onUpdate: RESTRICT } _indexes: { fk_programme_agency1: [agency_id], fk_programme_pays1: [city], fk_programme_property_type: [property_type_id]}
Et c'est là qu'intervient tout le problème, j'aimerais récupérer ma valeur id de la deuxième table et passant par la valeur 'city' de celle-ci, et que je retransmet à ma première table dans la colonne 'city'. Je ne peux pas modifier la structure car il y a déjà des données dans les tables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 pays: _attributes: { phpName: Pays } id: { phpName: Id, type: BIGINT, size: '20', primaryKey: true, autoIncrement: true, required: true } country: { phpName: Country, type: VARCHAR, size: '128', required: true } region: { phpName: Region, type: VARCHAR, size: '128', required: true } department: { phpName: Department, type: VARCHAR, size: '128', required: true } city: { phpName: City, type: VARCHAR, size: '128', required: true } zipcode: { phpName: Zipcode, type: VARCHAR, size: '12', required: true } latitude: { phpName: Latitude, type: VARCHAR, size: '128', required: true } longitude: { phpName: Longitude, type: VARCHAR, size: '128', required: true } created_at: { phpName: CreatedAt, type: TIMESTAMP, required: true } updated_at: { phpName: UpdatedAt, type: TIMESTAMP, required: true } _uniques: { city: [city, latitude, longitude] }
J'ai utiliser ce code php pour l'update de ma table:
A partir de là j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public function executeCreateProgramme(sfWebRequest $request) { if($request->isMethod("post")) { $InfosProgramme = new Programme(); $InfosProgramme->setAgencyId($_SESSION['idAgency']); $InfosProgramme->setAddress($_POST['address']); $InfosProgramme->setZipcode($_POST['zipcode']); $ville = ($_POST['city']); $idville = $this->pays->getId($ville); echo ($idville); $InfosProgramme->setCity($idville); $InfosProgramme->save();
Si quelqu'un pourrait m'aider j'en serais ravi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part PHP Fatal error: Call to a member function getId() on a non-object
Merci d'avance.
Partager