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

时间:2017-02-16 12:13:19

标签: php laravel

我有一个名为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);
    }
}

当我尝试使用时,我得到一个空指针异常,当我检查它时,$ 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();
    }
}

我每次使用时都应该启动数组吗?对我没有任何意义..

1 个答案:

答案 0 :(得分:0)

在不了解应用程序架构的情况下,我不能详细说明,但我觉得您甚至可能不需要这个阵列。

如果您正在查看ShoppingCart有多个Product,那么请尝试使用雄辩的#34;多对多"关系使用关系\Illuminate\Database\Eloquent\Relations\HasMany

https://laravel.com/docs/5.4/eloquent-relationships#many-to-many

通过建立这种关系,您可以通过$cart->products获取与您相关的所有产品,这将返回与购物车相关联的产品的雄辩Collection