Laravel private variable shared between two methods in Controller
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');
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