我有商店網站。我希望將OrderController和PanelCotroller數據與我的模型訂單中的最後一個訂單ID進行分享。這裏是我的代碼:Laravel在少數控制器之間共享數據
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');
}
}
}
現在我的函數addOrder返回true或false。當我調用函數getOrderId時,我可以在OrderController上看到orderId。但我想在PanelController - mainSite操作中調用getOrderId。當我創建那裏對象從訂單,然後我的函數getOrderId返回我空...
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;
}
}
而這裏是我的PanelController。
類PanelController擴展控制器 {
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');
}
}
我該怎麼辦我的我的變量訂單ID或方法getOrderId是可見的所有控制器?
Thx,這個提示非常有幫助。 – wenus