現在:公開中
[PHP][Laravel5.5] Protectedにconfigから取得した値を宣言できない。
概要
Protectedにconfigから取得した値を宣言できない。
クラスのメンバ変数はプロパティであり、定数値である必要がある。
コンストラクタで変数を定義すれば動く。
引用
クラスのメンバ変数のことを「プロパティ」といいます。 それ以外に「属性」「フィールド」などという呼びかたを見たことがあるかもしれません。 しかし、このマニュアルでは「プロパティ」と呼ぶことにします。 プロパティを定義するには public、protected あるいは private のいずれかのキーワードのあとに通常の変数の宣言を続けます。 宣言時に初期値を設定することもできますが、初期値は定数値でなければなりません。 つまり、コンパイル時に評価可能な値でなければならず、 実行時の情報がないと評価できない値であってはいけないということです。
http://php.net/manual/ja/language.oop5.properties.php
エラー
Constant expression contains invalid operations
翻訳
定数式に無効な操作が含まれています
発生ソースコード
<?php
use App\Http\Controllers\Controller;
class LoginController extends Controller
{
protected $maxLoginAttempts = config('conf.max_login_attempts');
protected $decayMinutes = config('conf.decayMinutes');
}
解決ソースコード
<?php
use App\Http\Controllers\Controller;
class LoginController extends Controller
{
protected $redirectTo = '/';
protected $maxLoginAttempts;
protected $decayMinutes;
public function __construct()
{
$this->maxLoginAttempts = 5;
$this->decayMinutes = 60;
}
protected function hasTooManyLoginAttempts(Request $request)
{
return $this->limiter()->tooManyAttempts(
$this->throttleKey($request), $this->maxLoginAttempts, $this->decayMinutes
);
}
}
0
投稿者:通りがりすの人 / 投稿日:2018-09-17 17:56:15 / PV数:5061 / コメント数:0
コメント 0
コメント投稿