Laravel 10 Filament v3 CRUD-bedieningsvoorbeeld

In deze sectie zullen we een ruwe app maken (lees-update maken en verwijderen) met Laravel 10 met filamentphp v3. Als je laravel 9 of filamentphp v2 gebruikt, kun je onderstaande blog lezen.

 

Stap 1: Installeer Laravel & Database verbinden

Installeer een nieuwe laravel 10-applicatie, dus ga naar de terminal, typ de opdracht en maak een nieuwe laravel-app.


composer create-project laravel/laravel filamentphp-crud

 
Nu moet u de laravel-app verbinden met de database, daarom het .env-configuratiebestand openen en de databasereferenties toevoegen zoals hieronder wordt voorgesteld.

.env


DB_CONNECTION=mijnsql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=databasenaam
DB_USERNAME=database_gebruikersnaam
DB_PASSWORD=database_wachtwoord

 

Stap 2: Laravel-filament installeren

Omdat Livewire v3 zich nog in de bètafase bevindt, stelt u de minimale stabiliteit in uw composer.json in op dev:.


"minimale stabiliteit": "dev",

Installeer de Filament Panel Builder door de volgende opdrachten uit te voeren in uw Laravel-projectmap.


componist vereist filament/filament:"^3.0-stable" -W
 
php artisan filament:install --panels

Maak een filamentgebruiker voor beheerder.


php artisan make:filament-gebruiker

Geef gebruikersnaam, e-mailadres en wachtwoord op.


Naam:
 > beheerder

 E-mailadres:
 > beheerder@gmail.com

 Wachtwoord:
 >

Succes! admin@admin.com kan nu inloggen op http://localhost/admin/login.

Stap 3: Inloggen bij de Filament-beheerder

http://localhost:8000/admin/login

 

 

Stap 4: Blogmodel maken en migreren

Voer de onderstaande opdracht uit om blogmodaal en migratie te maken.

 


php ambachtelijk merk:model Blog -m

create_blogs_table.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('blogs', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('blogs');
    }
};

 

App/Modal/Blog.php



namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Blog extends Model
{
    use HasFactory;

    protected $fillable = [
        'title',
        'content'
    ];
}

run migration


php artisan migrate

 

Stap 5: Maak een modelresource

Voer hieronder de opdracht uit om een ​​bron te maken voor het App\Models\Blog model.


php artisan make:filament-resource Blog

Hierdoor worden verschillende bestanden gemaakt in de map app/Filament/Resources.


+-- BlogResource.php
+-- CustomerResource
|   +-- Pages
|   |   +-- CreateBlog.php
|   |   +-- EditBlog.php
|   |   +-- ListBlogs.php

Stap 6: maak een blogfilament CRUD

Filament/Resources/BlogResource.php

 



namespace App\Filament\Resources;

use App\Filament\Resources\BlogResource\Pages;
use App\Filament\Resources\BlogResource\RelationManagers;
use App\Models\Blog;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Textarea;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\Section;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class BlogResource extends Resource
{
    protected static ?string $model = Blog::class;

    protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                Section::make()
                    ->schema([
                        TextInput::make('title')->required(),
                        Textarea::make('content')->required(),

                    ])
            ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                TextColumn::make('id'),
                TextColumn::make('title'),
                TextColumn::make('content'),
            ])
            ->filters([
                //
            ])
            ->actions([
                Tables\Actions\EditAction::make(),
            ])
            ->bulkActions([
                Tables\Actions\BulkActionGroup::make([
                    Tables\Actions\DeleteBulkAction::make(),
                ]),
            ])
            ->emptyStateActions([
                Tables\Actions\CreateAction::make(),
            ]);
    }

    public static function getRelations(): array
    {
        return [
            //
        ];
    }

    public static function getPages(): array
    {
        return [
            'index' => Pages\ListBlogs::route('/'),
            'create' => Pages\CreateBlog::route('/create'),
            'edit' => Pages\EditBlog::route('/{record}/edit'),
        ];
    }
}

 

Laravel 10 met filamentphp blogsindex.


Laravel 10 met filamentphp blog bewerken en verwijderen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert