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.
![](https:/ /purewisdomtech.com/wp-content/uploads/2023/10/30X2Id1sF5VYOMjKdM5E3MwfDRUNSDYQokAFcbWw.webp)