将模型扩展到控制器是个好主意吗?
比如说我想让我的模型中的函数受保护而不是公开,然后将我的模型扩展到控制器,以便控制器仍然可以调用这些函数?
这是一件好事吗?还是我应该让他们公开?
将模型扩展到控制器是个好主意吗?
比如说我想让我的模型中的函数受保护而不是公开,然后将我的模型扩展到控制器,以便控制器仍然可以调用这些函数?
这是一件好事吗?还是我应该让他们公开?
不,不要那样做!这破坏了 MVC 的整个对象。保留模型中的所有功能,除非它们仅供该模型或相关模型使用。在这种情况下,它们可以分别是私有的/受保护的。
如果您将模型扩展到控制器,那么控制器就会变成模型。
我无法想象控制器如何“扩展”您的模型。例如,您可以扩展 Eloquent 模型,并制作继承模型,例如:
class ModelB extends ModelA
{
// code
}
class ModelA extends Eloquent
{
protected $something;
//code
}
然后在控制器中相应地使用它们。您的控制器扩展了一个不同的类 BaseController 并且具有与模型不同的目的。所以简短的回答是否定的。