Laravel - 将模型扩展到控制器

时间:2013-10-10 14:51:49

标签: php laravel visibility

将模型扩展到控制器是一个好主意吗?

就像说我想让我的模型中的函数保护而不是公共,然后将我的模型扩展到控制器,以便控制器仍然可以调用这些函数?

这样做是件好事吗?或者我应该把它们公之于众?

2 个答案:

答案 0 :(得分:3)

不,不要那样做!这打败了MVC的整个目标。将模型中的所有函数保留为public,除非它们仅供该模型或相关模型使用。在这种情况下,他们可以分别是私人/受保护的。

如果将模型扩展到控制器,则控制器将变为模型。

答案 1 :(得分:1)

我无法想象控制器如何“扩展”您的模型。 例如,您可以扩展Eloquent模型,并创建继承的模型,如:

class ModelB extends ModelA
{
 // code
}


class ModelA extends Eloquent
{
protected $something;
//code
}

然后相应地在控制器中使用它们。您的控制器扩展了另一个类BaseController,其目的与模型不同。 所以简短的asnwer不是。