Salut à tous,
En attendant mon livre de symfony, je veux m'exercer sur ce framework avec ce tuto (que j'ai trouvé sur ce forum ) :
TUTO
Mon problème est qu'apres avoir créé les methodes getTagsString, setTagsString et deleteTags, le champs qui affiche les tags apparait grisé ! donc impossible d'y insérer des données. Est ce que c'est la façon de faire de symfony pour dire que quelque chose ne va pas ?
ps : lorsque j'entre des enregistrements dans la table tag directement depuis mysql, l'appli les affiche dans le champ grisé mais impossible de modifier les valeurs.

Je vous joint mon config.yml :
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
generator:
  class:              sfPropelAdminGenerator
  param:
    model_class:      Photo
    theme:            default
    list:
      display:        [_photo, file_path, description, tags_string, created_at]
      object_actions:
        _edit:
          name:       Edit photos
    edit:
      display:        [_photo, file_path, description, tags_string]
      fields:
        file_path:
          type:       admin_input_file_tag
        tags_string:
		  name:       Tags
		  type:       input_tag
ma classe Photo.php :
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
37
38
39
40
<?php
 
/**
 * Subclass for representing a row from the 'photo' table.
 *
 * 
 *
 * @package lib.model
 */ 
class Photo extends BasePhoto
{
public function getTagsString () {
	$tags = array();
	foreach ($this->getTags() as $tag) {
		$tags[] = $tag->__toString();
	}
	$s = implode(' ',$tags);
	return $s;
}
 
public function setTagsString ($tagPhrase) {
	//remove old tags
	$this -> deleteTags();
 
	//set new tags
	$tagNames = explode(' ', $tagPhrase);
	foreach ($tagNames as $tagName) {
		$tag = new Tag();
		$tag -> setPhoto($this);
		$tag -> setName($tagName);
		$tag -> save();
	}
}
 
public function deleteTags() {
	$c = new Criteria();
	$c -> add(TagPeer::PHOTO_ID, $this -> getId());
	TagPeer::doDelete($c);
}
}
et enfin le yml de ma bd :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
propel:
  photo:
    id:          ~
    file_path:   varchar(50)
    description: longvarchar
    created_at:  ~
  tag:
    photo_id:    ~
    name:        varchar(50)
  comment:
    photo_id:    ~
    author:      varchar(50)
    body:        varchar(50)
    created_at:  ~
Amis de symfony, je vous remerci !