Ich habe Shop-Site. Und ich möchte zwischen OrderController und PanelCotroller Daten mit der letzten OrderId aus meiner Model Order teilen. Hier ist mein Code:Laravel teilen Daten zwischen wenigen Controllern
class OrderController extends Controller
{
private $errors = [];
public function addOrder()
{
if (!Auth::check()) {
$this->errors[] = 'error';
return redirect()->back()->with('errors', $this->errors);
}
$userId = Auth::id();
$order = new Order();
$isOrdered = $order->addOrder($userId, $this->cart);
if ($isOrdered){
return redirect('panel')->with('info', 'Everything fine');
}
}
}
Jetzt meine Funktion addOrder zurück wahr oder falsch. Ich kann orderId auf OrderController sehen, wenn ich die Funktion getOrderId aufruft. Aber ich möchte getOrderId in PanelController - MainSite Aktion aufrufen. Als ich dort Gegenstand von Auftrag zu erstellen, dann getOrderId meine Funktion zurückgeben mich null ...
class Order extends Model
{
protected $table = 'orders';
public $timestamps = false;
private $orderId;
public function addOrder($userId, Cart $cart)
{
$order = new Order();
$order->user_id = $userId;
$order->save();
foreach ($cart->getItems() as $cartProduct) {
$orderProducts = new OrderProduct();
$orderProducts->product_id = $cartProduct->getProduct()->id;
$orderProducts->order_id = $order->id;
$orderProducts->quantity = $cartProduct->getQuantity();
$orderProducts->price = $cartProduct->getProduct()->price;
$orderProducts->save();
}
$cart->clear();
$this->orderId = $order->id;
return true;
}
public function getOrderId()
{
return $this->orderId;
}
}
Und hier meine PanelController ist.
Klasse PanelController erweitert Controller- {
public function mainSite()
{
if (Auth::check()) {
$order = new Order();
$order -> getOrderId() <---- here return me null instead my
last OrderId.
return View("panel");
} else {
return redirect('/login');
}
}
Wie kann ich tun, um meine meine Variable orderId oder Methode getOrderId an alle Regler zu sehen war?
Thx, dieser Tipp war sehr hilfreich. – wenus