Tutoriel : Le framework puzzleApp

Plus qu'un tutoriel vous retrouvez ici le détail du coeur du framework

Les entités 2

Le tutoriel précédent explique comment crée les entités, nous verrons dans celui-ci comment les utiliser, faire des requêtes et ajouter de nouveaux éléments .

1. Récupération d'une entité 

1.1 GetById

$article = new BlogArticle(1);
$article->GetById(1);

 

1.2 GetByName, GetByEmail, GetByCode

Si votre entité posséde le champ correspondant (Name, Email, Code)  vous pouvez utiliser ces méthodes 

$article = new BlogArticle($this->Core);
$article = $article->GetByName("MonArticle");

$article = $article->GetByName("Mon-article");



$user = new User($this->Core);
$user = $user->GetByEmail("jean@test.com");

Le GetByCode peut être très pratique par exemple dans la récupération depuis un paramétre d'url ou le nom a été transformé 

exemple : http://monsite.com/Blog/Article/Les-nouveautes-de-la-rentre-2019 

 

/! Le GetById charge l'entité en elle même alors que le GetByName, GetByEmail et GetByCode retourne l'objet chargé .

 

2. Récupération de plusieurs entités 

2.1 GetAll : Retourne toutes les entités 

//Recuperation des catégories
$category = new MoocCategory($this->Core);
$categorys = $category->GetAll();

 

2.2 GetByArg : Récupére les entités correspondantes au filtres

 

$messages = new ForumMessage($core);
$messages->AddArgument(new Argument("Apps\Forum\Entity\ForumMessage", "CategoryId",EQUAL, $categoryId ));
 
        
return $messages->GetByArg();

 

2.3 . Trie et limite :  AddOrder et SetLimit

$articles = new BlogArticle($core);
$articles->AddArgument(new Argument("AppsBlogEntityBlogArticle", "Actif", EQUAL, 1));
$articles->AddArgument(new Argument("AppsBlogEntityBlogArticle", "CategoryId", EQUAL, $article->CategoryId->Value));

$articles->AddArgument(new Argument("AppsBlogEntityBlogArticle", "Id", NOTEQUAL, $article->IdEntite));
$articles->AddArgument(new Argument("AppsBlogEntityBlogArticle", "Id", LESS, $article->IdEntite));

$articles->AddOrder(Id);
$articles->SetLimit(1,3);

 

2.4 Sauvegarde d'une entité : Save

La fonction Save s'occupe de l'enregistrement de l'entité. Si vous venez de créer votre entité la fonction va l'inserer en base de donnée par contre si vous avez obtenur votre entité depuis les méthodes ci- dessus cela va mettre à jour.

L'exemple ci-dessous représente les deux cas 

$event = new AgendaEvent($this->Core);

if(Request::GetPost('idEvent') != 'null')
{
  $event->GetById(Request::GetPost('idEvent'));
}

$event->Title->Value = Request::GetPost("Titre");
$event->Commentaire->Value = Request::GetPost("Commentaire");
$event->UserId->Value = $this->Core->User->IdEntite;
                
$event->AddName->Value = Request::GetPost("AppName");
$event->EntityName->Value = Request::GetPost("EntityName");
$event->EntityId->Value = Request::GetPost("EntityId");
	
//Recuperation de la date et l'heure
$event->DateStart->Value = Request::GetPost("DateStart");
$event->DateEnd->Value = Request::GetPost("DateEnd");

$event->Save();