2013-03-07 64 views
0

我正在嘗試在我的應用程序中使用Hash::make(),並且無法使其正常工作。我一直在嘗試使用Laravel 3站點上的文檔,因爲我找不到關於它的Laravel 4文檔。Laravel 4:Hash :: make not returned a proper value

當我嘗試在我的數據庫中插入Hash::make($password)時,它將值保存爲0.我的字段爲varchar,它的長度爲100,應該足夠長。我嘗試在我的數據庫中插入不同的字段,它總是保存爲0.我嘗試將$password設置爲測試字符串,而不是來自表單的內容,它仍然保存爲0.如果我插入$password而不是Hash::make()它存儲我的密碼。

我試着在我的頁面上呼應Hash::make('test),我什麼都沒有迴應。根本沒有輸出。我想這就是爲什麼當我嘗試存儲值時將0插入數據庫的原因。

這可能與您通過Artisan設置的應用程序密鑰key:generate有關嗎?我發現我沒有設置,當我試圖設置它,它告訴我它已經設置?我如何重置密鑰?

+0

artisan創建的應用程序密鑰用於會話cookie,但不會保持Hash :: make()不起作用。然而,爲了獲得密鑰集,我注意到如果它不包含原始文本'key'=>'YourSecretKey !!!',key:generate命令認爲密鑰已經設置(即使它是一個空字符串)。我正在測試一個完全更新的L4和Hash :: make('hello'),它應該返回一個64個字符的散列字符串。不知道,但我認爲它總是64字符,所以你的100字符字段應該沒問題。 – isimmons 2013-03-07 16:15:47

+0

我測試了你所說的關於密鑰的內容,並且你是正確的。 「Hash :: make()」會導致什麼問題? – sehummel 2013-03-07 16:18:43

+1

是'echo Hash :: make('hello')'有效的PHP將返回哈希? – sehummel 2013-03-07 16:25:51

回答

2

Requirements of Laravel 4

  • PHP> = 5.3.7
  • mcrypt的PHP擴展

我懷疑你沒有啓用這個Mcrypt PHP擴展。您可以運行phpinfo()進行確認。

+0

問題實際上是相反的。我有PHP 5.3.3。升級解決了這個問題。 – sehummel 2013-03-12 21:01:00