Many to many relationship in filament

i have this code for create new product with units class CreateProduct extends CreateRecord {protected static string $resource = ProductResource::class; protected function handleRecordCreation(array $data): Product { Log::info('FormData:', $data); return DB::transaction(function () use ($data) { $product = Product::create($data); if (isset($data['units']){foreach ($data['units'] as $unitData) { Log::info('Unit Data:', $unitData); if (!isset($unitData['price']) || is_null($unitData['price'])) { Log::error('Price is missing for unit', $unitData);continue;} $price = intval($unitData['price']); $product->units()->attach($unitData['unit_id'], ['price' => $price]); Log::info('Attached Unit with Price:', [ 'product_id' => $product->id, 'unit_id' => $unitData['unit_id'], 'price' => $price, ]);
} } return $product;}); }} when i create 2 uints with prices or above i saw error in third image how can i solve it product mode has class Product extends Model {use HasFactory; protected $table = "products" ; protected $fillable = [ 'name_ar' ,'name_en' , 'description_ar' , 'description_en' , 'image' ,'category_id' , 'is_activated', ]; public function toArray() { $array = parent::toArray(); $array['units'] = $this->units->map(function ($unit) {return ['id' => $unit->id, 'name' => $unit->name, 'price' => $unit->price,]; }); return $array; } public function units() { return $this->belongsToMany(Unit::class, 'products_units')->withPivot('price');} }
No description
No description
No description
No description
No description
1 Reply
toeknee
toeknee6mo ago
please read the #✅┊rules on code formatting. many to many with a pivot means the pivot doesn't house data other than the id's of the products usually
Want results from more Discord servers?
Add your server