0% ont trouvé ce document utile (0 vote)
4 vues8 pages

Examen Laravel : Gestion de Blogs

mlm

Transféré par

dakka
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats RTF, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues8 pages

Examen Laravel : Gestion de Blogs

mlm

Transféré par

dakka
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats RTF, PDF, TXT ou lisez en ligne sur Scribd

# Examen Laravel - Gestion des Blogs

**Département Informatique**

**Module: Programmation Web**

**Durée: 1h45**

**Date: Le 29 Déc 2024**

Vous devez développer une application Laravel pour gérer des articles de blog et leurs commentaires.
Chaque article peut avoir plusieurs commentaires, et chaque commentaire peut être marqué comme
"approuvé" ou "en attente".

## Structure des Tables de la Base de Données

1. Table `posts`

- `id`: identifiant unique de l'article (clé primaire)

- `title`: titre de l'article

- `content`: contenu de l'article

- `published_at`: date de publication

- `created_at`, `updated_at`: timestamps

2. Table `comments`

- `id`: identifiant unique du commentaire (clé primaire)

- `post_id`: clé étrangère liée à [Link]

- `content`: contenu du commentaire

- `author`: auteur du commentaire

- `is_approved`: statut d'approbation

- `created_at`, `updated_at`: timestamps


## 1. Migrations

**Migration pour posts:**

```php

public function up()

Schema::create('posts', function (Blueprint $table) {

// TODO: Ajoutez les colonnes nécessaires pour la table posts

});

```

**Migration pour comments:**

```php

public function up()

Schema::create('comments', function (Blueprint $table) {

// TODO: Ajoutez les colonnes nécessaires pour la table comments


});

```

## 2. Modèles

**Modèle Post:**

```php

class Post extends Model

use HasFactory;

protected $fillable = []; // TODO: Complétez les champs remplissables

// TODO: Ajoutez la relation avec les commentaires

public function comments()

```

**Modèle Comment:**
```php

class Comment extends Model

use HasFactory;

protected $fillable = []; // TODO: Complétez les champs remplissables

// TODO: Ajoutez la relation avec l'article

public function post()

```

## 3. Routes

```php

// TODO: Ajoutez les routes nécessaires pour les articles et les commentaires

```
## 4. Contrôleurs

**PostController:**

```php

class PostController extends Controller

public function index()

// TODO: Récupérer tous les articles et les passer à la vue

public function show($id)

// TODO: Récupérer l'article et ses commentaires

public function create()

// TODO: Retourner la vue de création d'article

}
public function store(Request $request)

// TODO: Valider et sauvegarder le nouvel article

```

**CommentController:**

```php

class CommentController extends Controller

public function store(Request $request, $postId)

// TODO: Valider et créer un nouveau commentaire

public function update(Request $request, $id)

// TODO: Mettre à jour le statut d'approbation

```
## 5. Vues

**Vue posts/[Link]:**

```php

@extends('[Link]')

@section('content')

<!-- TODO: Créez la vue qui liste tous les articles -->

@endsection

```

**Vue posts/[Link]:**

```php

@extends('[Link]')

@section('content')

<!-- TODO: Créez la vue qui affiche un article et ses commentaires -->
@endsection

```

## Répartition des points:

- 4 points pour la gestion de la base de données (migrations)

- 4 points pour les modèles

- 3 points pour les routes

- 6 points pour les contrôleurs

- 3 points pour les vues

Total: 20 points

## Instructions supplémentaires:

1. Assurez-vous que toutes les validations nécessaires sont en place

2. Les commentaires doivent être approuvés avant d'être affichés

3. La date de publication doit être automatiquement définie lors de la création d'un article

4. Utilisez les bonnes pratiques de Laravel pour le nommage et l'organisation du code<

Vous aimerez peut-être aussi