2017-11-02 1 views
0

Laravel을 사용하여 미들웨어 파일에서 .env 상수를 호출하려고하지만 상수 표현에 잘못된 연산이 포함되어 있습니다.Laravel의 미들웨어 파일에서 env 상수 호출

이 내 실제 코드 :

<?php 

namespace App\Http\Middleware; 

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; 

class VerifyCsrfToken extends Middleware 
{ 
    /** 
    * The URIs that should be excluded from CSRF verification. 
    * 
    * @var array 
    */ 
    protected $except = [ 
     env("TELEGRAM_BOT_TOKEN") . '/webhook' 
    ]; 
} 
+0

표현은 컴파일 시간에 평가 될 수 없다 . 그런 초기 값을 설정할 수는 없습니다. – lagbox

+0

또한 설정 파일 밖에서'env' 변수를 만지지 마십시오. – lagbox

답변

2

이 오류는 클래스/객체 속성에 대한 기본 값은 PHP에서 일정해야한다는 것을 의미한다. 이는 런타임에가 아니라 컴파일/구문 분석시 해당 값이 결정되기 때문입니다. 즉, 어떤 기능도 호출 할 수 없습니다.

그러나 클래스의 생성자에서이를 수행 할 수 있습니다. 당신이 문 파일의 시작 부분에 다음과 같은 사용이 있는지 확인

public function __construct(Application $app, Encrypter $encrypter) { 
    parent::__construct($app, $encrypter); 
    $this->except = [ 
     env("TELEGRAM_BOT_TOKEN") . '/webhook' 
    ]; 
} 

: VerifyCsrfToken 클래스를 다음과 같은 기능을 추가

use Illuminate\Foundation\Application; 
use Illuminate\Contracts\Encryption\Encrypter; 
관련 문제