Bonjour.
Comme le sujet le mentionne, j'ai un me message d'erreur que j'afficher dans une vue comme quoi une vue n'est pas trouvable
Une erreur s'est produite : Unable to find template "loginForm.twig" (looked into: ...\app\Core/../views).
Par exemple, la vue loginForm.twig n'existe pas mais j'ai quand même la vue voulue login.twig qui s'affiche car elle est appelée par le contrôler LoginController.php dans la fonction loginForm().
J'ai l'impression que ça m'affiche la bonne vue mais que ça veux aussi afficher une vue avec le nom de la fonction + ".twig"
Le problème n'est pas spécifique à cette vue. Il est présent sur presque toutes les vues.
Pour cette vue, j'ai la vue login.twig
Code : Tout sélectionner
{% extends "/base.twig" %}
{% block title %}Login{% endblock %}
{% block content %}
<div class="container col-lg-6 mt-4">
<h2>Connexion</h2>
{% if error %}
<div class="alert alert-danger" role="alert">
{{ error }}
</div>
{% endif %}
<form action="{{ base_url }}login" method="post">
<div class="form-group">
<label for="usernameOrEmail">Nom d'utilisateur ou Email</label>
<input type="text" class="form-control" id="usernameOrEmail" name="usernameOrEmail" required>
</div>
<div class="form-group">
<label for="password">Mot de passe</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-primary">Se connecter</button>
</form>
</div>
{% endblock %}
Le methode loginForm() du controller LoginController.php
Code : Tout sélectionner
public function loginForm()
{
$config = new Config();
$base_url = $config->getBaseUrl();
return $this->render('login.twig', ['base_url' => $base_url]);
}
les routes concernant le form :
Code : Tout sélectionner
$routes = [
'GET /login' => [LoginController::class, 'loginForm'],
'POST /login' => [LoginController::class, 'login'],
'GET /logout' => [LoginController::class, 'logout'],
];
return $routes;
Si cela peut aider, voici la structure du site ;
flow
|__app
| |__config
| | |__Config.php
| | |__database.php
| | |__routes.php
| |__controllers
| | |__BaseController.php
| | |__DashboardController.php
| | |__HomeContoller.php
| | |__LoginController.php
| | |__PostController.php
| | |__UserController.php
| |__Core
| | |__Router.php
| |__Middleware
| | |__AuthMiddleware.php
| |__models
| | |__BaseModel.php
| | |__LoginModel.php
| | |__PostModel.php
| | |__UserModel.php
| |__views
| | |__admin_user
| | | |__addUserForm.twig
| | | |__deletaUserConfirmation.twig
| | | |__updateUserForm.twig
| | | |__userAdded.twig
| | |__patials
| | | |__menu.twig
| | | __posts
| | | |_addPostForm.twig
| | | |__deletePostConfirmation.twig
| | | |__postAdded.twig
| | | |__updatePost.twig
| | |__404.twig
| | |__base.twig
| | |__dashboard.twig
| | |__home.twig
| | |__index.twig
| | |__login.twig
|__public
| |___css
| | |__style.css
| |___img
| | |__favicon.ico
| | |flow.jpg
| |___js
| | |__script.js
| |__process_form.php
|__index.php
|__loader.php
Je suis pas sur d'avoir été clair.
Mais merci d'avance
Bonjour.
Comme le sujet le mentionne, j'ai un me message d'erreur que j'afficher dans une vue comme quoi une vue n'est pas trouvable
[quote]Une erreur s'est produite : Unable to find template "loginForm.twig" (looked into: ...\app\Core/../views).[/quote]
Par exemple, la vue loginForm.twig n'existe pas mais j'ai quand même la vue voulue login.twig qui s'affiche car elle est appelée par le contrôler LoginController.php dans la fonction loginForm().
J'ai l'impression que ça m'affiche la bonne vue mais que ça veux aussi afficher une vue avec le nom de la fonction + ".twig"
Le problème n'est pas spécifique à cette vue. Il est présent sur presque toutes les vues.
Pour cette vue, j'ai la vue login.twig
[code]{% extends "/base.twig" %}
{% block title %}Login{% endblock %}
{% block content %}
<div class="container col-lg-6 mt-4">
<h2>Connexion</h2>
{% if error %}
<div class="alert alert-danger" role="alert">
{{ error }}
</div>
{% endif %}
<form action="{{ base_url }}login" method="post">
<div class="form-group">
<label for="usernameOrEmail">Nom d'utilisateur ou Email</label>
<input type="text" class="form-control" id="usernameOrEmail" name="usernameOrEmail" required>
</div>
<div class="form-group">
<label for="password">Mot de passe</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-primary">Se connecter</button>
</form>
</div>
{% endblock %}[/code]
Le methode loginForm() du controller LoginController.php
[code] public function loginForm()
{
$config = new Config();
$base_url = $config->getBaseUrl();
return $this->render('login.twig', ['base_url' => $base_url]);
}[/code]
les routes concernant le form :
[code]
$routes = [
'GET /login' => [LoginController::class, 'loginForm'],
'POST /login' => [LoginController::class, 'login'],
'GET /logout' => [LoginController::class, 'logout'],
];
return $routes;
[/code]
Si cela peut aider, voici la structure du site ;
[quote]
flow
|__app
| |__config
| | |__Config.php
| | |__database.php
| | |__routes.php
| |__controllers
| | |__BaseController.php
| | |__DashboardController.php
| | |__HomeContoller.php
| | |__LoginController.php
| | |__PostController.php
| | |__UserController.php
| |__Core
| | |__Router.php
| |__Middleware
| | |__AuthMiddleware.php
| |__models
| | |__BaseModel.php
| | |__LoginModel.php
| | |__PostModel.php
| | |__UserModel.php
| |__views
| | |__admin_user
| | | |__addUserForm.twig
| | | |__deletaUserConfirmation.twig
| | | |__updateUserForm.twig
| | | |__userAdded.twig
| | |__patials
| | | |__menu.twig
| | | __posts
| | | |_addPostForm.twig
| | | |__deletePostConfirmation.twig
| | | |__postAdded.twig
| | | |__updatePost.twig
| | |__404.twig
| | |__base.twig
| | |__dashboard.twig
| | |__home.twig
| | |__index.twig
| | |__login.twig
|__public
| |___css
| | |__style.css
| |___img
| | |__favicon.ico
| | |flow.jpg
| |___js
| | |__script.js
| |__process_form.php
|__index.php
|__loader.php
[/quote]
Je suis pas sur d'avoir été clair.
Mais merci d'avance