Home > Blockchain >  How can I access variable stored outside of controller in Laravel
How can I access variable stored outside of controller in Laravel

Time:09-26

I need to save the model id that is being saved and avoid another save while it's saving it, but I don't know how to persist data between requests and access it later.

JAVASCRIPT Works perfectly well, but I can't do the same in LARAVEL 9.

// MODELS THAT ARE BEING UPDATED.
const models = {}

function handleRequest(req) {
  if (models[req.model_id]) {
    return
  }

  models[req.model_id] = true
  // UPDATE MODEL.
  models[req.model_id] = false
}

LARAVEL 9 Doesn't work as expected.

<?php

use App\Http\Controllers\Controller;

// MODELS THAT ARE BEING UPDATED.
$models = [];

class MyController extends Controller
{
  public function index(Request $request)
  {
    if ($models[$model_id]) {
      return;
    }
    
    $models[$model_id] = true;
    // UPDATE MODEL.
    $models[$model_id] = false;
  }
}

CodePudding user response:

Your problem is that you are trying to compare different entities in JS, you use a Function, and in Laravel you have a Class, these are different concepts and mechanics of work

You can make a property inside a class

<?php

use App\Http\Controllers\Controller;

class MyController extends Controller
{
  // MODELS THAT ARE BEING UPDATED.
  public $models = [];
  public function index(Request $request)
  {
    if ($this->models[$model_id]) {
      return;
    }
    
    $this->models[$model_id] = true;
    // UPDATE MODEL.
    $this->models[$model_id] = false;
  }
}

CodePudding user response:

You might consider using sessions:

session(['model_id' => 123]); // save data to session

$model_id = session('model_id'); // get data from session
  • Related