我有自定義類laravel 5.4應用程序應該返回哈希祕密。類是在Laravel自定義函數返回NULL,但在var_dump不是NULL
class Hash {
// Unencrypted secret
private $secret;
public function generateSecret(){
$secret = generateSecretKey();
$secret_hash = password_hash($secret, PASSWORD_BCRYPT);
Session::put('secret-hash', $secret_hash);
$this->secret = $secret;
}
}
然後在我的控制器我有
use Hash;
class UsersController extends BaseController
{
public function Auth()
{
$myhash = new Hash();
$msg = '';
$myhash->generateSecret();
$enc = $myhash->encryptSecret($key->key);
return View::make('users.auth', ['enc'=> $enc]);
}
...
}
var_dump($myhash->generateSecret());
從public function generateSecret()
回報string(15) "866094233422231" string(15) "583375207466239"
這是正確的控制器返回NULL
var_dump($secret)
。
在UsersController var_dump($myhash);
也返回正確的數據
String(15) "008844975703088" object(Hash)#329 (1)
{
["secret":"Hash":private]=> string(15) "008844975703088"
}
顯示,這個問題是在控制器和生成哈希$myhash->generateSecret();
。該函數必須生成密鑰(字符串),然後將其散列並顯示在頁面上。
任何想法,爲什麼該功能無法正常工作?我不知道我還能嘗試什麼。
我想'var_dump'顯示null,因爲你的函數沒有返回。 – ArtOsi
是的,我認爲是相同的,但當我var直接在它顯示結果的函數中轉儲它時,它不是null,這對我來說很奇怪。 – Ivan
返回你的函數generateSecret的值。 – aldrin27