@Analka

Как сделать глобальной переменную?

Как сделать, чтобы значение было одинаковое для все страниц?

Класс который генерит значение капчи
class MathCaptcha
{
  private $firstNumber;
  private $secondNumber;
  private $name = 'result_captcha';

  public function __construct(int $firstNumber,int $secondNumber, string $name = null)
  {
    $this->firstNumber = $firstNumber;
    $this->secondNumber = $secondNumber;
    if(!empty($name)) $this->name = $name;
  }

  public function getResult(): string
  {
    $time = time();

    $first = random_int(0,$this->firstNumber);
    $second = random_int(0,$this->secondNumber);

    if($time & 1){
      $str = $first.'-'.$second;
      $result = $first - $second;
    }else{
      $str = $first.'+'.$second;
      $result = $first + $second;
    }
    
    session([$this->name => $result]);

    return $str;
  }
}

в сервис провайдере делаю так
public function register()
    {
      View::composer(['*'], function ($view) {
        $captcha_register = (new MathCaptcha(20, 9,'captcha_register'))->getResult(20, 9);

        $view->with([
          'captcha_register' =>  $captcha_register,
        ]);
      });
    }

но получается для дефолтного шаблона одно значение, для страницы регистрация другое
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы