2016-05-02 7 views
3

im ReglerLaravel - in der Steuerung übergeben Variable einer Funktion zur anderen

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'); 
    } 
} 

Dies ist ein Beispiel. Was ich versuche ist, das Berechnungsergebnis in der ersten Methode an die zweite zu übergeben. Ich erwarte in der zweiten Methode innerhalb dd(), um das Ergebnis 2 zu zeigen, aber stattdessen werde ich null.

Was läuft schief und wie behebt man das?

Antwort

1

Sie sollten es wirklich neu gestalten. Sie können eine dritte Methode erstellen und darin Berechnungen durchführen. Dann rufe diese Methode einfach von der ersten und zweiten ab.

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

einfach einfügen $this->second(); direkt nach $this->variable = $calculation; in first Methode.

+0

Ich kann das nicht tun es bietet mir nicht die Lösung, die ich will. –

+1

Nun, dann versuche einfach '$ this-> second();' nachdem die Berechnungen gemacht sind. –

+0

Können Sie mir ein Beispiel zeigen? –

1

warum nicht einige Sitzung var verwenden?

Session :: put ('Berechnung', $ this-> Variable); und $ value = Session :: get ('calculation');

Verwandte Themen