我有一个名为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();
}
}
我每次使用时都应该启动数组吗?对我没有任何意义..
答案 0 :(得分:0)
在不了解应用程序架构的情况下,我不能详细说明,但我觉得您甚至可能不需要这个阵列。
如果您正在查看ShoppingCart
有多个Product
,那么请尝试使用雄辩的#34;多对多"关系使用关系\Illuminate\Database\Eloquent\Relations\HasMany
。
https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
通过建立这种关系,您可以通过$cart->products
获取与您相关的所有产品,这将返回与购物车相关联的产品的雄辩Collection
。