Menambah master langsung dari select option
Menambah master langsung dari select option
14 Sheet
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->string('name'); $table->timestamps(); }); }
<em>/**</em> * Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('categories');
}
};Replace migration posts seperti berikut:<?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('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->longText('content'); $table->foreignId('categorie_id')->constrained('categories')->cascadeOnUpdate()->restrictOnDelete(); $table->timestamps(); }); }
<em>/**</em> * Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('posts');
}
};Replace model Post seperti berikut:<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model;
class Post extends Model { use HasFactory;
protected $guarded = []; public function categorie(){ return $this->belongsTo(Category::class, 'categorie_id');}}Replace model Category seperti berikut:<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model;
class Category extends Model { use HasFactory;
protected $guarded = [];}jalankan migration tablephp artisan migrateMembuat Form Postpada bagian form tambahkan kode berikutpublic static function form(Form $form): Form { return $form ->schema([ Card::make() ->schema([ TextInput::make('title'), RichEditor::make('content'), Select::make('categorie_id') ->label('Category') ->relationship('categorie', 'name') ->createOptionForm([ TextInput::make('name') ])
]) ]);}</pre><p><strong>bagian terpenting adalah pada kode berikut ini:</strong></p><pre>->createOptionForm([TextInput::make('name')])kode ini untuk membuat select option bisa menambahkan master category secara langsungjangan lupa untuk mengimport component berikutuse Filament\Forms\Components\Card;
use Filament\Forms\Components\RichEditor;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;selanjutnya membuat list tablepublic static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('title'),
TextColumn::make('categorie.name')
->label('Category'),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
])
->emptyStateActions([
Tables\Actions\CreateAction::make(),
]);
}jangan lupa mengimport component dibawah iniuse Filament\Tables\Columns\TextColumn;Melihat hasil dan menjalankan Serverjalankan server php artisan servepergi ke url 127.0.0.1:8000/user/login login dengan user dan password yang sudah anda buat untuk user jika belum ada registrasi ulang 127.0.0.1:8000/user/registerselect optionklik pada icon plus maka akan muncul modal untuk menambahkan master categorymodal untuk menambahkan master category
Komentar
Ada 0 komentar pada episode ini.