在php/laravel中定义类内的数组

在php/laravel中定义类内的数组,php,laravel,Php,Laravel,我有一个名为shoppingCart的类,我想在其中定义一个数组。但似乎我需要手动创建一个数组实例来使用它。我肯定有办法,但我找不到 我的购物图表课 namespace App; use Illuminate\Database\Eloquent\Model; use App\Product; class shoppingChart extends Model { var $products = Array(); var $productCount=0; public

我有一个名为shoppingCart的类,我想在其中定义一个数组。但似乎我需要手动创建一个数组实例来使用它。我肯定有办法,但我找不到 我的购物图表课

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\Product;

class shoppingChart extends Model
{
    var $products = Array();
    var $productCount=0;

    public function ItemCount(){
       return count($products);
    }
}
当我尝试使用时,我得到一个空指针异常n,当我检查它时,$products似乎不在变量列表中

 array_push($sc->products, "test");
我可以这样做。当我使用数组时。很好

public function addToBasket(Request $request)
{   
    $product = new Product();
    $product->id = Input::get('product_id');


    if($request->session()->has('shoppingCart')){
        $sc = $request->session()->get('shoppingCart');
        $sc->products = Array(); // If i remove this line code doesn`t work
        array_push($sc->products,$product);
        $sc->productCount=$sc->itemCount();
    }
}

我应该每次使用阵列时都启动它吗?对我来说没有任何意义。

如果不了解更多有关应用程序架构的信息,我无法详细说明,但我感觉您可能甚至不需要此阵列

如果您正在查看一个
购物车
有许多
产品
,那么请尝试使用关系使用有说服力的“多对多”关系


通过这种关系,您将能够通过
$cart->products
获取与您的购物车相关的所有产品,这将返回与购物车关联的产品的雄辩的
集合。

您忘记了访问器:如果您想从外部访问该类变量,请将其公开。在您所在的位置共享更多代码使用
array_push($sc->products,“test”)?您是否是与
ShoppingCart
对象关联的
$products
数组和
产品
对象数组?或者只是为了在将产品id与购物车关联之前保存它们?目前不鼓励使用
var
,在某些版本的php中,它会抛出错误。使用访问修饰符,如
public
public$products=array()或除公共(受保护或专用)之外的任何其他访问修饰符