私はショッピングサイトを行っています。私はカートンモデルを作りました。これはシングルトンです。ショッピングカートは常にセッション中に存在します(ユーザーはログインしているかどうかにかかわらず)。今私はすべてのコントローラとアクションgetInstanceをチェックするか、キー "カート"があるたびに呼び出さなければなりません。 すべてのビューでこれを自動的に行う可能性はありますか?私はこのすべての時間を行う必要があるLaravel、Singleton - すべてのコントローラにデータを送信する方法は?
class StoreController extends Controller
{
public function mainSite()
{
$cart=Cart::getInstance()->get();
return View('zoo');
}
public function showCategory($categoryName)
{
$cart=Cart::getInstance()->get();
$category = new Category();
$categoryId = (int)$category->getCategoryId($categoryName);
$subCategories = Subcategory::where('category_id', $categoryId)->get();
return View('zoo-category', ['subCategories' => $subCategories, 'categoryName' => $categoryName]);
}
public function showSubcategory()
{
$cart=Cart::getInstance()->get();
}
:$カート=カート、それはコントローラとアクションにどのように見えるか例えばここ
class Cart
{
private $cartModel;
private static $instance;
private function __construct()
{
$this->cartModel = new CartModel();
$cart = Session::get('cart');
if ($cart == null) {
Session::put('cart', array());
}
}
private function __clone()
{
}
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new Cart();
}
return self::$instance;
}
public function get(){
return Session::get('cart');
}
}
そして:ここ
は私のシングルトンのコードです:: getInstance() - > get(); これは1回だけ行うことはできますか?
アドバイスありがとうございます。私は全体のサブジェクトを書いて、それも動作します。 – wenus