Я рекомендую таблицу, в которой есть столбцы product_id
, user_id
и deleted_at
, и я хочу отобразить наиболее просматриваемые продукты в представлении, и оно работает нормально, но проблемы возникают, когда пользователь удаляет продукт, я получаю ошибкуtrying to get property of non object
и столбец deleted_at
в таблице рекомендует все еще показывает ноль, даже если продукт удален. Как сделать так, чтобы продукт исчез в таблице рекомендаций после удаления продукта, и в представлении должны отображаться только продукты, которые не были удалены?
Контроллер
$recommends = Recommends::with('product')
->select('product_id', DB::raw('COUNT(*) AS total'))
->whereNotNull('product_id')
->groupBy('product_id')
->orderby('total', 'DESC')
->take(12)
->get();
Recommended.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Recommends extends Model
{
public function product()
{
return $this->belongsTo('App\Product','product_id')
}
}
Product.php
public function recommends()
{
return $this->hasMany('App\Recommends','product_id');
}