Setelah product resource berhasil dibuat, maka langkah selanjutnya adalah membuat form untuk proses create dan edit data product.
Silahkan teman-teman buka file app/Filament/Resources/ProductResource.php, kemudian cari kode berikut ini.
php
public static function form(Form $form): Form
{
return $form
->schema([
//
]);
}
Dan ubahlan menjadi seperti berikut ini.
php
public static function form(Form $form): Form
{
return $form
->schema([
//card
Forms\Components\Card::make()
->schema([
//image
Forms\Components\FileUpload::make('image')
->label('Product Image')
->placeholder('Product Image')
->required(),
//title
Forms\Components\TextInput::make('title')
->label('Product Title')
->placeholder('Product Title')
->required(),
Forms\Components\Grid::make(3)->schema([
//category
Forms\Components\Select::make('category_id')
->label('Category')
->relationship('category', 'name')
->required(),
//price
Forms\Components\TextInput::make('price')
->label('Price')
->placeholder('Price')
->required(),
//weight
Forms\Components\TextInput::make('weight')
->label('Weight')
->placeholder('Weight')
->required(),
]),
//description
Forms\Components\RichEditor::make('description')
->label('Product Description')
->placeholder('Product Description')
->required(),
])
]);
}
Dari perubahan kode di atas, pertama kita menambahkan component Card.
cpp
Forms\Components\Card::make()
Kemudian di dalamnya, kita menambahkan beberapa form input, yaitu:
-
FileUploaddengan namaimagephp//image Forms\Components\FileUpload::make('image') ->label('Product Image') ->placeholder('Product Image') ->required(), -
TextInputdengan namatitlephp//title Forms\Components\TextInput::make('title') ->label('Product Title') ->placeholder('Product Title') ->required(), -
GridcssForms\Components\Grid::make(3)->schema([ //... ]),Di dalam
Griddi atas, akan kita berikan 3 component di dalamnya, yaitu:category_id,pricedanweight -
Selectdengan namacategory_idphp//category Forms\Components\Select::make('category_id') ->label('Category') ->relationship('category', 'name') ->required(),Di atas, kita juga memanggil relasi
categorydan data yang akan ditampilkan adalahname. -
TextInputdengan namapricephp//price Forms\Components\TextInput::make('price') ->label('Price') ->placeholder('Price') ->required(), -
TextInputdengan namaweightphp//weight Forms\Components\TextInput::make('weight') ->label('Weight') ->placeholder('Weight') ->required(), -
RichEditordengan namadescriptionphp//description Forms\Components\RichEditor::make('description') ->label('Product Description') ->placeholder('Product Description') ->required(),
Sekarang, silahkan reload project-nya, kemudian klik New product dan jika berhasil maka akan mendapatkan hasil seperti berikut ini.
