skip to Main Content

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 AppHttpControllersController;

// 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;
  }
}

2

Answers


  1. 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 AppHttpControllersController;
    
    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;
      }
    }
    
    Login or Signup to reply.
  2. You might consider using sessions:

    session(['model_id' => 123]); // save data to session
    
    $model_id = session('model_id'); // get data from session
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search