0

我的服务是这样的:

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,在第 45 行的 C:\xampp\htdocs\mysystem\app\Repositories\FavoriteRepository.php 中调用并定义

你能帮助我吗?

更新

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,
    ];
}
4

2 回答 2

0

好像你正在使用这个包:nilportugues/eloquent-repository

如果是这种情况,那么您需要将存储库代码更改为:

public function delete($store_id)
{
    return $this->remove($store_id);
} 
于 2017-01-27T05:35:44.973 回答
0

您是否检查过哪个实例正在返回您的self::where('favoritable_id', $store_id)? 似乎它正在返回您的 EloquentRepository 实例,而不是 Model 实例。区别在于 EloquentRepository 的delete方法是delete($id),Model 的delete方法是delete()。所以你要么需要模型实例来使用 ->delete(),要么在你的上使用 ->delete($id)

于 2017-01-27T11:01:39.763 回答