Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
framework-web:symfony:td3 [2018/02/21 00:20] – [Test Ajax] jcheron | framework-web:symfony:td3 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 32: | Ligne 32: | ||
===== Création du projet, intégration des composants ===== | ===== Création du projet, intégration des composants ===== | ||
- | Exécuter le script de création de la base de données : | + | Exécuter le script de création de la base de données : {{: |
<sxh bash: | <sxh bash: | ||
- | mysql -u root < path/to/boards.sql | + | mysql -u root < path/to/projects.sql |
</ | </ | ||
Ligne 299: | Ligne 299: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | {{: | ||
==== Composant HtmlButtonGroups ==== | ==== Composant HtmlButtonGroups ==== | ||
Ligne 307: | Ligne 309: | ||
public function buttons(){ | public function buttons(){ | ||
$bts=$this-> | $bts=$this-> | ||
+ | $bts-> | ||
$bts-> | $bts-> | ||
$bts-> | $bts-> | ||
} | } | ||
</ | </ | ||
+ | Le click sur chaque bouton effectue une requête ajax vers l'url définie dans **data-url** dont le résultat est afficher dans l' | ||
+ | |||
Modifier le template **Projects/ | Modifier le template **Projects/ | ||
Ligne 341: | Ligne 346: | ||
</ | </ | ||
+ | {{: | ||
+ | ==== Composant DataTable ==== | ||
+ | |||
+ | Créer la classe **TagsGui** dans **src/ | ||
+ | <sxh php; | ||
+ | namespace App\Services\semantic; | ||
+ | |||
+ | use Ajax\php\symfony\JquerySemantic; | ||
+ | |||
+ | class TagsGui extends JquerySemantic{ | ||
+ | public function dataTable($tags){ | ||
+ | $dt=$this-> | ||
+ | return $dt; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Créer la classe Repository pour les Tags : | ||
+ | |||
+ | <sxh php; | ||
+ | namespace App\Repository; | ||
+ | |||
+ | use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; | ||
+ | use Symfony\Bridge\Doctrine\RegistryInterface; | ||
+ | use App\Entity\Tag; | ||
+ | |||
+ | class TagRepository extends ServiceEntityRepository | ||
+ | { | ||
+ | public function __construct(RegistryInterface $registry) | ||
+ | { | ||
+ | parent:: | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | Créer le controller **Tags** et la route **tags** : | ||
+ | |||
+ | <sxh php; | ||
+ | namespace App\Controller; | ||
+ | |||
+ | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
+ | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | ||
+ | use Symfony\Component\HttpFoundation\Response; | ||
+ | use App\Repository\TagRepository; | ||
+ | use App\Services\semantic\TagsGui; | ||
+ | |||
+ | class TagsController extends Controller{ | ||
+ | |||
+ | /** | ||
+ | * @Route("/ | ||
+ | */ | ||
+ | public function index(TagsGui $gui, | ||
+ | $tags=$tagRepo-> | ||
+ | $dt=$gui-> | ||
+ | return new Response($dt); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | Amélioration de l' | ||
+ | |||
+ | <sxh php; | ||
+ | namespace App\Services\semantic; | ||
+ | |||
+ | use Ajax\php\symfony\JquerySemantic; | ||
+ | use Ajax\semantic\html\elements\HtmlLabel; | ||
+ | |||
+ | class TagsGui extends JquerySemantic{ | ||
+ | public function dataTable($tags){ | ||
+ | $dt=$this-> | ||
+ | $dt-> | ||
+ | $dt-> | ||
+ | $dt-> | ||
+ | $lbl=new HtmlLabel("", | ||
+ | $lbl-> | ||
+ | return $lbl; | ||
+ | }); | ||
+ | return $dt; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Formulaire de modification ==== | ||
+ | |||
+ | Ajouter une méthode **frm** dans **TagsGui** | ||
+ | <sxh php; | ||
+ | public function frm(Tag $tag){ | ||
+ | $frm=$this-> | ||
+ | return $frm; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Créer la vue associée : | ||
+ | |||
+ | <sxh html; | ||
+ | {{ q[" | ||
+ | {{ script_foot | raw }} | ||
+ | </ | ||
+ | |||
+ | Créer la route affichant le formulaire dans le contrôleur **Tags** : | ||
+ | |||
+ | <sxh php; | ||
+ | ... | ||
+ | /** | ||
+ | * @Route(" | ||
+ | */ | ||
+ | public function update(Tag $tag, | ||
+ | $tagsGui-> | ||
+ | return $tagsGui-> | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | Ajouter le bouton d' | ||
+ | |||
+ | <sxh php; | ||
+ | ... | ||
+ | class TagsGui extends JquerySemantic{ | ||
+ | public function dataTable($tags){ | ||
+ | $dt=$this-> | ||
+ | $dt-> | ||
+ | $dt-> | ||
+ | $dt-> | ||
+ | $lbl=new HtmlLabel("", | ||
+ | $lbl-> | ||
+ | return $lbl; | ||
+ | }); | ||
+ | $dt-> | ||
+ | $dt-> | ||
+ | $dt-> | ||
+ | return $dt; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Modifier la route **/tags** pour qu' | ||
+ | |||
+ | <sxh php; | ||
+ | ... | ||
+ | /** | ||
+ | * @Route("/ | ||
+ | */ | ||
+ | public function tags(TagsGui $gui, | ||
+ | $tags=$tagRepo-> | ||
+ | $gui-> | ||
+ | return $gui-> | ||
+ | } | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Ajouter la vue **templates/ | ||
+ | |||
+ | <sxh html; | ||
+ | <div id=" | ||
+ | {{ q[" | ||
+ | {{ script_foot | raw }} | ||
+ | </ | ||
+ | |||
+ | |||
+ | Implémenter la méthode **update** dans **TagRepository** : | ||
+ | <sxh php; | ||
+ | ... | ||
+ | class TagRepository extends ServiceEntityRepository | ||
+ | { | ||
+ | public function __construct(RegistryInterface $registry) | ||
+ | { | ||
+ | parent:: | ||
+ | } | ||
+ | |||
+ | public function update(Tag $tag){ | ||
+ | $this-> | ||
+ | $this-> | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Créer la route **tag/ | ||
+ | <sxh php; | ||
+ | ... | ||
+ | /** | ||
+ | * @Route(" | ||
+ | */ | ||
+ | public function submit(Request $request, | ||
+ | $tag=$tagRepo-> | ||
+ | if(isset($tag)){ | ||
+ | $tag-> | ||
+ | $tag-> | ||
+ | $tagRepo-> | ||
+ | } | ||
+ | return $this-> | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Améliorer le formulaire de modification des tags : | ||
+ | |||
+ | <sxh php; | ||
+ | ... | ||
+ | public function frm(Tag $tag){ | ||
+ | $colors=Color:: | ||
+ | $frm=$this-> | ||
+ | $frm-> | ||
+ | $frm-> | ||
+ | $frm-> | ||
+ | $frm-> | ||
+ | $frm-> | ||
+ | $frm-> | ||
+ | $frm-> | ||
+ | $frm-> | ||
+ | $frm-> | ||
+ | $this-> | ||
+ | $frm-> | ||
+ | return $frm; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | {{: | ||