2015-10-14 69 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 –