/home/bdqbpbxa/api-uniferx.goodface.com.ua/app/Models/Product.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphToMany;
class Product extends Model
{
use HasFactory;
protected $table = 'products';
protected $fillable = [
'product_id',
'is_enabled',
'system_name',
'slug',
'type',
'preview_title',
'preview_image',
'logo',
'preview_button_text',
'preview_description',
'title',
'title_button',
'title_button_link',
'title_image',
'about_tag',
'about_title',
'about_description',
'general_information',
'general_information_read_more',
'general_information_image',
'benefits',
'benefits_preview_video',
'benefits_video',
'composition_compatibility',
'technical_information',
'data',
];
protected $casts = [
'benefits' => 'array',
'composition_compatibility' => 'array',
'preview_image' => 'array',
'logo' => 'array',
'title_image' => 'array',
'general_information_image' => 'array',
'benefits_preview_video' => 'array',
'data' => 'array',
];
public function related_products()
{
return $this->hasMany(Product::class);
}
public function product()
{
return $this->belongsTo(Product::class);
}
public function nutrition_programs()
{
return $this->belongsToMany(
Crop::class,
'product_nutrition_program',
'product_id',
'crop_id',
);
}
public function trial_results()
{
return $this->belongsToMany(
Crop::class,
'product_trial_result',
'product_id',
'crop_id',
);
}
public function catalogs(): MorphToMany
{
return $this->morphToMany(Catalog::class, 'catalogables');
}
// public function catalogs()
// {
// return $this->belongsToMany(
// Catalog::class,
// 'product_catalog',
// 'product_id',
// 'catalog_id',
// );
// }
}