我的服务是这样的:
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;
}
存在错误:
App \ Repositories \ FavoriteRepository :: delete()缺少参数1, 呼唤 C:\ xampp \ htdocs \ mysystem \ app \ Repositories \ FavoriteRepository.php on 第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,
];
}
答案 0 :(得分:0)
好像你正在使用这个pakage:nilportugues/eloquent-repository
如果是这种情况,那么您需要将存储库代码更改为:
public function delete($store_id)
{
return $this->remove($store_id);
}
答案 1 :(得分:0)
您是否检查了哪个实例正在返回self::where('favoritable_id', $store_id)
?它似乎正在返回您的EloquentRepository实例,而不是Model实例。
区别在于EloquentRepository的删除方法为delete($id)
,模型的删除方法为delete()
。
所以你要么需要使用Model实例 - > gt;删除(),要么使用 - >删除($ id)你的