Plus qu'un tutoriel vous retrouvez ici le détail du coeur du framework
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 .
$article = new BlogArticle(1);
$article->GetById(1);
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.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();
$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);
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();