@ João Mantovani Пока нет. Я все еще использую вышеупомянутый способ для моего случая
одель продукта, как это:
<?php
...
class Product extends Model
{
...
protected $fillable = ['name','photo','description',...];
public function favorites(){
return $this->morphMany(Favorite::class, 'favoritable');
}
}
Моя любимая модель, как это:
<?php
...
class Favorite extends Model
{
...
protected $fillable = ['user_id', 'favoritable_id', 'favoritable_type'];
public function favoritable()
{
return $this->morphTo();
}
}
Мой красноречивый запрос laravel добавить, удалить и получить вот так:
public function addWishlist($product_id)
{
$result = Favorite::create([
'user_id' => auth()->user()->id,
'favoritable_id' => $product_id,
'favoritable_type' => 'App\Models\Product',
'created_at' => Carbon::now()
]);
return $result;
}
public function deleteWishlist($product_id)
{
$result = Favorite::where('user_id', auth()->user()->id)
->where('favoritable_id', $product_id)
->delete();
return $result;
}
public function getWishlist($product_id)
{
$result = Favorite::where('user_id', auth()->user()->id)
->where('favoritable_id', $product_id)
->get();
return $result;
}
Из кода выше, я использую параметрproduct_id
добавлять, удалять и получать данные любимые
Здесь я хочу спросить: является ли вышеизложенный правильный способ добавления, удаления и получения данных с использованием полиморфных отношений?
Или есть лучший способ сделать это?