Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 存储库模式laravel的逻辑_Php_Laravel_Design Patterns_Repository Pattern - Fatal编程技术网

Php 存储库模式laravel的逻辑

Php 存储库模式laravel的逻辑,php,laravel,design-patterns,repository-pattern,Php,Laravel,Design Patterns,Repository Pattern,我正在学习使用Laravel框架 我偶然发现了这些存储库,在几个网站上说这是一个很好的开发实践 我在Laravel中找到了一些帮助实现这一实践的包,但错过了一些特性,但我认为我没有很好地理解其逻辑及其好处 考虑到研究这一部分,我创建了一个包,展示了如何思考这个实现,但我仍然有很多问题 例: 范围和关系是否应转移到存储库或保留在模型中 如何在存储库中实现类型函数“increment(),decrement()”?或者在控制器上调用它们是否正确 $model = $repository->f

我正在学习使用Laravel框架

我偶然发现了这些存储库,在几个网站上说这是一个很好的开发实践

我在Laravel中找到了一些帮助实现这一实践的包,但错过了一些特性,但我认为我没有很好地理解其逻辑及其好处

考虑到研究这一部分,我创建了一个包,展示了如何思考这个实现,但我仍然有很多问题

例:

范围和关系是否应转移到存储库或保留在模型中

如何在存储库中实现类型函数
“increment(),decrement()”
?或者在控制器上调用它们是否正确

$model = $repository->find($id);
$model->increment();

谢谢

您应该在模型中设置关系:

当您在回购协议中与模型交谈时,如果需要,您可以提取关系信息。增量和减量应该在存储库中完成

查看这篇快速文章,更好地了解您试图使用存储库模式实现的目标:


你想用你的
递增/递减方法实现什么?请检查“[我该如何问一个好问题?”()”例如,在显示产品的地方,增加我的模型中的“视图”列。这将创建我的模型与控制器的耦合,存储库的目的是解耦。谢谢。作用域也应该转移到存储库?我对作用域做得不多,但简单地看一下,这似乎是您希望避免在模型级别执行的操作,作为一项规则,您应该尝试将模式与存储库分离,以及将服务层与存储库分离。