Laravel:La structrue du projet
La structure MVC du projet Laravel est la suivante
├── gestionVentes
│ ├── app
│ │ ├── Http
│ │ ├── Controllers
│ │ │ ├── ProduitController.php
│ │ │ ├── ClientController.php
│ │ │ ├── VenteController.php
│ │ │ ├── ...les controllers font les traitements métiers
│ ├── Models
│ │ ├── Produit.php
│ │ ├── Client.php
│ │ ├── Vente.php
│ │ ├── ...Les models comuniquent avec la BD
├── database
│ ├── migrations
│ │ ├── create_table_produit.php
│ │ ├── create_table_client.php
│ │ ├── create_table_vente.php
│ │ ├── ....permet de créer les tables dans la BD
├── resources
│ ├── views
│ │ ├── produit
│ │ │ ├── index.blade.php
│ │ │ ├── create.blade.php
│ │ │ ├── show.blade.php
│ │ │ ├── edit.blade.php
│ │ │ ├── ...
│ │ ├── client
│ │ │ ├── index.blade.php
│ │ │ ├── create.blade.php
│ │ │ ├── show.blade.php
│ │ │ ├── edit.blade.php
│ │ │ ├── ....
├── routes
│ ├── web.php
│ │ ├── contenant les routes:
│ │ │ ├── Route::resource('produits', ProduitController::class);
│ │ │ ├── Route::resource('clients', ClientController::class);
│ │ │ ├── Route::resource('ventes', VenteController::class);
│ │ │ ├── ...
1:Créer le Model:Produit
│ ├── Models
│ │ ├── Produit.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Produit extends Model
{
use HasFactory;
//ajouter les colonnes de la table produits
protected $fillable=['libelle','marque','prix','qteStock','image'];
}
├── migrations
│ ├── create_table_produit.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
//up:permet de creér la table das la base de données
public function up(): void
{
Schema::create('produits', function (Blueprint $table) {
$table->id(); //id:primary key
$table->string('libelle', 25);//varchar(25)
$table->string('marque', 25)->nullable();//varchar(25) null
$table->decimal('prix', 5)->default(0.00);//decimal(5) defautl 0.00
$table->float('qteStock', 5)->default(0);
$table->string('image', 125);//varchar(25) not null
$table->timestamps();
});
}
//down :permet de supprimer la table de la base de données
public function down(): void
{
Schema::dropIfExists('produits');
}
};
Lancer la migration
Pour le moment la table Produit n'est créee ,Pour créer la table on doit lancer migrate afin de créer la table produits dans la base de données :gestionventes La base de données gestionventes on doit la créer manulement dans phpMyadmin de xampp La tables produits est crée dans la base de données
Types de données
Voici la liste des type de données et attribut qu'on trouve dans Laravel :Command | Description |
---|---|
$table->bigIncrements('id'); | Incrementing ID (primary key) using a "UNSIGNED BIG INTEGER" equivalent. |
$table->bigInteger('votes'); | BIGINT equivalent for the database. |
$table->binary('data'); | BLOB equivalent for the database. |
$table->boolean('confirmed'); | BOOLEAN equivalent for the database. |
$table->char('name', 4); | CHAR equivalent with a length. |
$table->date('created_at'); | DATE equivalent for the database. |
$table->dateTime('created_at'); | DATETIME equivalent for the database. |
$table->decimal('amount', 5, 2); | DECIMAL equivalent with a precision and scale. |
$table->double('column', 15, 8); | DOUBLE equivalent with precision, 15 digits in total and 8 after the decimal point. |
$table->enum('choices', ['foo', 'bar']); | ENUM equivalent for the database. |
$table->float('amount'); | FLOAT equivalent for the database. |
$table->increments('id'); | Incrementing ID (primary key) using a "UNSIGNED INTEGER" equivalent. |
$table->integer('votes'); | INTEGER equivalent for the database. |
$table->json('options'); | JSON equivalent for the database. |
$table->jsonb('options'); | JSONB equivalent for the database. |
$table->longText('description'); | LONGTEXT equivalent for the database. |
$table->mediumInteger('numbers'); | MEDIUMINT equivalent for the database. |
$table->mediumText('description'); | MEDIUMTEXT equivalent for the database. |
$table->morphs('taggable'); | Adds INTEGER taggable_id and STRING taggable_type . |
$table->nullableTimestamps(); | Same as timestamps() , except allows NULLs. |
$table->rememberToken(); | Adds remember_token as VARCHAR(100) NULL. |
$table->smallInteger('votes'); | SMALLINT equivalent for the database. |
$table->softDeletes(); | Adds deleted_at column for soft deletes. |
$table->string('email'); | VARCHAR equivalent column. |
$table->string('name', 100); | VARCHAR equivalent with a length. |
$table->text('description'); | TEXT equivalent for the database. |
$table->time('sunrise'); | TIME equivalent for the database. |
$table->tinyInteger('numbers'); | TINYINT equivalent for the database. |
$table->timestamp('added_on'); | TIMESTAMP equivalent for the database. |
$table->timestamps(); | Adds created_at and updated_at columns. |
$table->uuid('id'); | UUID equivalent for the database. |