Laravel private variable shared between two methods in Controller

前端 未结 2 461
一生所求
一生所求 2020-12-16 22:28

How to use private variable in Laravel Controller, and share that variable value between two methods. (Set it in one use it in another).

相关标签:
2条回答
  • 2020-12-16 23:05

    You can also use Setting approach outlined here

    laravel share variable across all methods in a controller

    and

    Laravel: Passing default variables to view

    and you can download Setting here, https://github.com/Phil-F/Setting

    0 讨论(0)
  • 2020-12-16 23:15

    You're talking about one single controller, right? So I'll assume that this what you mean:

    class ControllerController extends Controller {
    
        private $variable;
    
        public function __construct($whatever)
        {
            $this->variable = $whatever;
        }
    
        public function method1($newValue)
        {
            $this->variable = $newValue;
        }
    
        public function method2()
        {
            return $this->variable;
        }
    
    }
    

    If you are doing thing in the same request, you can

    $this->method1('newvalue');
    
    echo $this->method2();
    

    And it will print newvalue.

    If you are doing it between requests, you need to remember that your application ends after a request a restart in a new one, so you'll need to store it somewhere, like in a Session variable:

    Session::put('variable', $newvalue);
    

    and then

    Session::get('variable');
    

    Or you can redirect with the value you need to get back in your method:

    Redirect::to('posts')->with('variable','this is a new value');
    

    And in the second

    Session::get('variable');
    
    0 讨论(0)
提交回复
热议问题