я впервые использую laravel nova, я хочу сохранить свои данные в 2 таблицах, первый сохранить основные данные, а второй сохранить данные истории.В своей таблице Item я сохраняю id, код, имя, цену, а в моей таблице Item_Codes сохраняю item_id и код, я его получил.Моя проблема заключается в том, что при сохранении данных в Item_Codes два раза сохраняется
Я использую Laravel Observer, это моя сохраненная функция ItemObserver
public function saved(Item $item)
{
DB::table('item_codes')->insert(
[
'item_id' => $item->id,
'code' => $item->current_code,
'created_by' => $item->created_by,
]
);
}
, и это мой ресурс ресурса
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Text::make('Original code', 'original_code')
->sortable()
->rules('required', 'string', 'max:255')
->hideFromIndex(),
Text::make('Current code', 'current_code')
->sortable()
->rules('required', 'string', 'max:255'),
Text::make('Name', 'name')
->sortable()
->rules('required', 'string', 'max:255'),
Textarea::make('Description', 'description')
->rules('required')
->creationRules('required', 'string'),
Number::make('Cost', 'cost')
->sortable()
->rules('required')
->min(1),
Number::make('Minimum price', 'minimum_price')
->sortable()
->rules('required')
->min(1),
Text::make('ABCD Classification', 'abcd_classification')
->sortable()
->rules('required', 'string')
->hideFromIndex()
->hideWhenCreating()
->hideWhenUpdating(),
BelongsToMany::make('Categories'),
new Panel('Stock', $this->stockFields()),
new Panel('Tracking', $this->trackingFields()),
];
}
Это моя модель товара
class Item extends Model{
/**
* The attributes that aren mass assignable.
*
* @var array
*/
protected $fillable = [
'original_code',
'current_code',
'name',
'description',
'current_stock',
'unavailable_stock',
'cost',
'minimum_price',
'abcd_classification'
];
/**
* The attributes that aren't mass assignable.
*
* @var array
*/
protected $guarded = [
'created_by',
'updated_by'
];
/**
*
* Providers
*
* Returns the items providers
*
* @return collection
*/
public function providers()
{
return $this->belongsToMany('App\Models\Provider');
}
/**
*
* Categories
*
* Returns the items categories
*
* @return collection
*/
public function categories()
{
return $this->belongsToMany('App\Models\Category');
}
}
Извините за мой плохой английский, надеюсь, ваши ответы