Php Laravel-控制器将变量传递到一个函数到另一个函数

Php Laravel-控制器将变量传递到一个函数到另一个函数,php,laravel,Php,Laravel,内部控制器 class acontroller extends Controller { private $variable; public function __construct(){ $this->variable; } public function first(){ $calculation = 1 + 1; $this->variable = $calculation;

内部控制器

class acontroller extends Controller
{    
    private $variable;

    public function __construct(){
        $this->variable;
    }

    public function first(){
        $calculation = 1 + 1;
        $this->variable = $calculation;
        return view('something.view');
    }

    public function second(){
        dd($this->variable);
        return view('something.view2');
    }
}
这是一个例子。 我要做的是将第一种方法中的计算结果传递给第二种方法。我希望在dd()中的第二个方法中显示结果2,但结果不是这样,而是null


出了什么问题以及如何解决这个问题?

你真的应该重新设计它。您可以创建第三种方法并在其中进行计算。然后从第一个和第二个调用这个方法

public function first(){
    $this->third();
    dd($this->variable);
    return view('something.view');
}

public function second(){
    $this->third();
    dd($this->variable);
    return view('something.view2');
}

public function third(){
    $calculation = 1 + 1;
    $this->variable = $calculation;
}

只需插入
$this->second()紧跟在
$this->variable=$calculation之后第一个
方法中使用code>。

为什么不使用一些会话变量

Session::put('calculation', $this->variable);


您在一个http调用中调用第一个方法,在另一个http调用中调用第二个方法,因此这两个方法是完全独立的应用程序运行如果您想在不同的请求中共享一个变量,您应该使用某种数据库

我做不到这一点,它没有为我提供我想要的解决方案$this->second()紧跟在
$this->variable=$calculation之后
方法中的code>。不,它不工作。我认为它不起作用,因为它不知道插入什么值。
$value = Session::get('calculation');