У меня есть класс под названием shoppingCart, и я бы хотел определить массив внутри него. Но мне кажется, мне нужно вручную создать экземпляр массива для его использования. Я уверен, что есть способ, но я могу найти его Моего торгового графика классОпределение массива внутри класса в php/laravel
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);
}
}
Когда я пытаюсь использовать я получаю нулевой указатель exceptionn и я проверил Когда N это $ продуктов Безразлично `кажется в списке переменных.
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();
}
}
Должен ли я инициировать массив каждый раз, когда я его использую? Не имеет для меня никакого смысла.
Вы забыли свой аксессуар: сделайте переменную класса общедоступной, если хотите получить доступ к ней извне. –
делите больше кода, где вы используете 'array_push ($ sc-> products," test ");'? – C2486
Являетесь ли вы '$ products' массивом и массивом объектов' Product', связанных с объектом 'ShoppingCart'? или это просто для хранения идентификатора продукта, прежде чем вы свяжете его с корзиной покупок? – Spholt