routes
fichier web.php
Route::get('/', function () {
return view('welcome');
//echo "ce site est";
});
utilisation d'une fonction anonyme ou d'un controlleurs
le / est routé vers la vue welcome
mettre à jour la vue
rajouter une nouvelle vue
Controllers
création d'uncontroller
$php artisan make:controller ArticleController
respecter les règles de nommage
sur ArticleController.php:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function articles(){
echo"affichage des articles";
}
public function article($id){
echo"affichage de l'article ".$id;
}
}
sur web.php:
Route::get('/articles', 'ArticleController@articles');
Route::get('/article/{id}', 'ArticleController@article');
9.
migration
création dufichier de migration:
$php artisan make:migration create_articles_table --create=articles
Rajouter les champs nécessaires sur le fichier créé sur le répertoire migration
$table->string('name');
$table->string('description');
création de la base de données
configuration du fichier .env avec les paramètre de connexion à la base
génération des tables:
$php artisan migrate
10.
modèle
création dumodèle :
$php artisan make:model Article
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Article extends Model
{
//
}
11.
Modèle
rajouter surle contrôleur :
use AppArticle;
public function newArticle(){
$newArticle = new Article();
$newArticle->name="stylo";
$newArticle->description="stylo à bille de haute qualité....";
$newArticle->save();
}
public function listArticles(){
$articles = Article::all();
print_r($articles);
}
Layouts
Créer unfichier master.blade.php dans le répertoire ressources/views/layouts
Mettre dedans le contenu HTML qui ne change pas dans les pages du site
Un menu | Home | Clients | Fournisseurs | Articles | Contact |
Rajouter dessus la partie dynamique suivante:
@yield(‘content’)
Créer un fichier vue accueil.blade.php dans ressources/views
Mettre dedans le contenu suivant :
@extends(‘layouts.master’)
@Section(‘content’)
…contenu HTML
@endsection
16.
Layouts
Rajouter dansles routes :
Route::get('accueil', function () {
return view('accueil');
});
Rajouter de la même manière d’autres vues qui héritent du layouts master
(contact …)
Rajouter dans le fichier master.blade.php des liens vers ces vues via :
<a href = ‘’{{ url(‘accueil’) }}‘’> accueil</a>
17.
Ajouter un nouvelarticle
Dans le controller de l’article rajouter les fonctions
public function create(){
return view('article.create');
}
public function store(Request $request){
$article = new Article();
$article->name = $request->input('nom');
$article->description = $request->input('description');
$article->save();
}
18.
Ajouter un nouvelarticle
Rajouter dans les routes :
Route::get('articles/create', 'ArticleController@create');
Route::post('articles', 'ArticleController@store');
Créer un répertoire article dans views
Créer un fichier create.blade.php dans le répertoire article avec le contenu :
Affichage de laliste des articles
Dans le controller de l’article rajouter la fonction
public function index(){
$listArticle = Article::all();
return view('article.index', ['articles' => $listArticle]);
}
Rajouter à la fin de la fonction store
return redirect('articles');
Rajouter dans les routes :
Route::get('articles', 'ArticleController@index');
Créer un fichier index.blade.php dans le répertoire article avec le contenu :
Modifier un article
Modifier le lien de modification sur index.blade.php avec :
<td><a href="{{url('articles/'.$article->id.'/edit')}}">modifier</a></td>
Dans le controller de l’article rajouter les fonctions
public function edit($id){
$article = Article::find($id);
return view('article.edit', ['article'=>$article]);
}
public function update(Request $request, $id){
$article = Article::find($id);
$article->name = $request->input('nom');
$article->description = $request->input('description');
$article->save();
return redirect('articles');
}
23.
Modifier un article
Rajouter dans les routes :
Route::get('articles/{id}/edit', 'ArticleController@edit');
Route::put('articles/{id}', 'ArticleController@update');
Créer un fichier edit.blade.php dans le répertoire article avec le contenu :
Supprimer un article
Modifier le lien de suppression sur index.blade.php avec :
<td><form action ="{{url('articles/'.$article->id)}}" method="post">
{{csrf_field()}}
{{method_field('DELETE')}}
<button type="submit" >supprimer</button></form></td>
Dans le controller de l’article rajouter la fonction
public function destroy($id){
$article = Article::find($id);
$article->delete();
return redirect('articles');
}
Rajouter dans les routes
Route::delete('articles/{id}', 'ArticleController@destroy');