2016-09-01 102 views
0

我有一個表稱爲角色與5列(id,名稱,角色,created_At,update_at)。 我需要在數據庫中創建一個枚舉ADMINISTRATOR =>'Adinistrador',EMPLOYEE =>'Colaborador'。我需要訪問驗證,如果是管理員,我雖然是把這樣的查詢塗抹: table-> role(ADMINISTRATOR);Laravel 5.2枚舉與數據庫

是一種用數據庫做枚舉的方法嗎?

回答

1

在db表中使用枚舉有一個很大的缺點:如果你需要添加一個新值,你必須改變表。如果您的表格有很多行,則可能會非常耗時。我個人更喜歡使用tinyint字段作爲由兩個字段組成的表的外鍵:id,值的描述。

在表格將INT存儲的Mysqlrole值1,2,3,4, 表roles將存儲在像的方式行:(1, ADMINISTRATOR), (2, User)等。

Laravel

define('ADMINISTRATOR', 1); 
define('User', 2); 

table->role(ADMINISTRATOR); // search for ADMINISTRATOR 
在這種情況下,結果是ID =>管理員描述=> 「Administrador」
+0

?我如何調用方法來檢查是admin還是EMPLOYEE? –

+0

@FabioSantos我已更新我的信息。 –

+0

列角色存儲值和另一列**描述**存儲ADMINISTRATOR,EMPLOYEE,但我需要存儲portogueses描述 –