将模型扩展到控制器是一个好主意吗?
就像说我想让我的模型中的函数保护而不是公共,然后将我的模型扩展到控制器,以便控制器仍然可以调用这些函数?
这样做是件好事吗?或者我应该把它们公之于众?
答案 0 :(得分:3)
不,不要那样做!这打败了MVC的整个目标。将模型中的所有函数保留为public,除非它们仅供该模型或相关模型使用。在这种情况下,他们可以分别是私人/受保护的。
如果将模型扩展到控制器,则控制器将变为模型。
答案 1 :(得分:1)
我无法想象控制器如何“扩展”您的模型。 例如,您可以扩展Eloquent模型,并创建继承的模型,如:
class ModelB extends ModelA
{
// code
}
class ModelA extends Eloquent
{
protected $something;
//code
}
然后相应地在控制器中使用它们。您的控制器扩展了另一个类BaseController,其目的与模型不同。 所以简短的asnwer不是。