Categories (NN)

This commit is contained in:
Clément
2025-04-17 15:04:13 +02:00
parent dad50e035f
commit 338e803c5f
14 changed files with 398 additions and 1 deletions

View File

@@ -0,0 +1,66 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\StoreCategorieRequest;
use App\Http\Requests\UpdateCategorieRequest;
use App\Models\Categorie;
class CategorieController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(StoreCategorieRequest $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(Categorie $categorie)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Categorie $categorie)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(UpdateCategorieRequest $request, Categorie $categorie)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Categorie $categorie)
{
//
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreCategorieRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
//
];
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdateCategorieRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
//
];
}
}

View File

@@ -22,4 +22,9 @@ class Billet extends Model
{
return $this->hasMany(Commentaire::class);
}
public function categories()
{
return $this->belongsToMany(Categorie::class);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Categorie extends Model
{
/** @use HasFactory<\Database\Factories\CategorieFactory> */
use HasFactory;
public function billets()
{
return $this->belongsToMany(Billet::class);
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class billet_categorie extends Model
{
/** @use HasFactory<\Database\Factories\BilletCategorieFactory> */
use HasFactory;
}

View File

@@ -0,0 +1,66 @@
<?php
namespace App\Policies;
use App\Models\Categorie;
use App\Models\User;
use Illuminate\Auth\Access\Response;
class CategoriePolicy
{
/**
* Determine whether the user can view any models.
*/
public function viewAny(User $user): bool
{
return false;
}
/**
* Determine whether the user can view the model.
*/
public function view(User $user, Categorie $categorie): bool
{
return false;
}
/**
* Determine whether the user can create models.
*/
public function create(User $user): bool
{
return false;
}
/**
* Determine whether the user can update the model.
*/
public function update(User $user, Categorie $categorie): bool
{
return false;
}
/**
* Determine whether the user can delete the model.
*/
public function delete(User $user, Categorie $categorie): bool
{
return false;
}
/**
* Determine whether the user can restore the model.
*/
public function restore(User $user, Categorie $categorie): bool
{
return false;
}
/**
* Determine whether the user can permanently delete the model.
*/
public function forceDelete(User $user, Categorie $categorie): bool
{
return false;
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\billet_categorie>
*/
class BilletCategorieFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
//
];
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Categorie>
*/
class CategorieFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
//
'CAT_NOM' => fake()->text(10),
];
}
}

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('categories', function (Blueprint $table) {
$table->id();
$table->text('CAT_NOM');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('categories');
}
};

View File

@@ -0,0 +1,39 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('billet_categorie', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('billet_id');
$table->foreign('billet_id')
->references('id')
->on('billets')
->onDelete('cascade')
->onUpdate('cascade');
$table->unsignedBigInteger('categorie_id');
$table->foreign('categorie_id')
->references('id')
->on('categories')
->onDelete('cascade')
->onUpdate('cascade');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('billet_categories');
}
};

View File

@@ -0,0 +1,19 @@
<?php
namespace Database\Seeders;
use App\Models\Categorie;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class CategorieSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//
Categorie::factory(10)->create();
}
}

View File

@@ -6,8 +6,22 @@
<a href="{{ route('billets.show', $billet->id) }}"><h1 class="titreBillet">{{ $billet->BIL_TITRE }}</h1></a>
<time>{{ $billet->BIL_DATE }}</time>
</header>
<p>
Dans :
@php
$counter = 0;
@endphp
@foreach($billet->categories as $categorie)
{{ $categorie->CAT_NOM }}
@php
$counter++;
@endphp
@if(count($billet->categories) > $counter)
/
@endif
@endforeach
</p>
<p>{{ $billet->BIL_CONTENU }}</p>
</article>
<hr />
@endforeach
@endsection