2015-10-14 67 views
3

我知道它是not possible to use a reserved word in PHP as class name,但是我的Laravel应用程序允许管理课程和类,所以我有一个名为classesClassController和希望为Class模型的数据库表。然而,在Laravel,我的模型已被命名为Class未在PHP不允许:Laravel - 使用保留字命名模型

class Class extends Model {} 

使用的代名词,最接近的是Lecture,仍然看起来不正确。

有没有Laravel解决方法呢?

+4

'在Laravel中,我的模型必须命名为Class',你可以任意命名模型,称之为ClassModel? – samrap

回答

4

Laravel不强制您为模型或控制器使用特定的名称。这只是一个惯例。无论你想要什么,你都可以命名你的模型。你需要做的唯一修改是在你的模型中声明protected $table = 'classes'

+0

超级酷,这帮了我很多。这是唯一在模型中声明'protected $ table'的puprose吗?当我们想使用保留字?你知道我在哪里可以找到laravel的保留字列表吗?显然'实体'是一个。 – Noitidart

+1

@Noitidart声明'protected $ table'的目的是为了覆盖Laravel遵循的命名约定。 Laravel会假设你的表名是你的模型名称的复数形式,也就是说你可能有一个名为'Video'的模型,然后它会查找table'videos'。但如果你想命名你的模型'VideoModel',它会查找'video_models'表。这是你定义的地方 - 不,它仍然只是'protected $ table ='videos';' –

+0

我很确定你可以有一个名为'Entity'的模型。唯一的限制是PHP保留字http://php.net/manual/en/reserved.php –