Мой сервис выглядит следующим образом:
public function delete($store_id) { $result = $this->favorite_repository->delete($store_id); dd($result); }
Мой репозиторий выглядит так:
public function delete($store_id) { $data = self::where('favoritable_id', $store_id)->delete(); return $data; }
Существуют ошибки:
Отсутствует аргумент 1 для App \ Repositories \ FavoriteRepository :: delete (), вызывается в C: \ xampp \ htdocs \ mysystem \ app \ Repositories \ FavoriteRepository.php в строке 45 и определен
Вы можете мне помочь?
ОБНОВИТЬ
Функция удаления в EloquentRepository выглядит так:
public function delete($id) { // Find the given instance $deleted = false; $instance = $id instanceof Model ? $id : $this->find($id); if ($instance) { // Delete the instance $deleted = $instance->delete(); // Fire the deleted event $this->getContainer('events')->fire($this->getRepositoryId().'.entity.deleted', [$this, $instance]); } return [ $deleted, $instance, ]; }
Похоже, вы используете этот pakage: nilportugues/eloquent-repository
Если это так, вам необходимо изменить код репозитория:
public function delete($store_id) { return $this->remove($store_id); }
Вы проверили, какой экземпляр возвращает ваш self::where('favoritable_id', $store_id)
? Кажется, он возвращает экземпляр EloquentRepository вместо экземпляра модели. Разница в том, что метод delete($id)
EloquentRepository – delete($id)
, метод delete()
модели – delete()
. Поэтому вам нужно либо получить экземпляр модели для использования -> delete (), либо использовать -> delete ($ id) на вашем