How to use private variable in Laravel Controller, and share that variable value between two methods. (Set it in one use it in another).
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With