Я пытаюсь вызвать константу .env из файла Middleware с помощью Laravel, но получаю только то, что выражение Constant содержит недопустимую операцию.
Это мой фактический код:
<?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'
];
}
Эта ошибка означает, что значения по умолчанию для свойств класса / объекта должны быть постоянными в PHP. Это потому, что их значения определяются во время компиляции / разбора, а не во время выполнения. Это означает, что вы не можете вызывать какие-либо функции.
Однако вы можете сделать это в конструкторе класса. Добавьте следующую функцию VerifyCsrfToken учебный класс:
public function __construct(Application $app, Encrypter $encrypter) {
parent::__construct($app, $encrypter);
$this->except = [
env("TELEGRAM_BOT_TOKEN") . '/webhook'
];
}
Убедитесь, что у вас есть следующее использование операторы в начале файла:
use Illuminate\Foundation\Application;
use Illuminate\Contracts\Encryption\Encrypter;
Других решений пока нет …