Parse error: syntax error, unexpected '__construct' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST)
Parse error: syntax error, unexpected '__construct' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST)
我有这个问题。当我点击添加到购物车按钮时出现错误:
Parse error: syntax error, unexpected '__construct' (T_STRING),
expecting function (T_FUNCTION) or const (T_CONST)
我是 Laravel 的新人,我真的不知道我必须做什么,
这是我添加到购物车按钮上的代码:
<a href="{{route('get.addToCart',[$product->id])}}" class="cart-btn">Add to cart</a>
这是我的路线:
Route::get('add-to-cart/{id}', 'WebController@addToCart')->name('get.addToCart');
我在 webcontroller 中有这个:
public function addToCart(Request $request, $id){
$product = Product::find($id);
$oldCart = Session::has('cart') ? Session::get('cart') : null;
$cart = new Cart($oldCart);
$cart->add($product,$product->id);
$request->session()->put('cart',$cart);
dd($request->session()->get('cart'));
return redirect()->route(get.product);
}
这是我的 cart.php
<?php
namespace App;
class Cart{
public $items=null;
public __construct($oldCart){
if($oldCart){
this->$items=$oldCart->items;
}
}
public function add($item,$id){
$storedItem= ['name'=>$item];
if(this-> $items)
{
if(array_key_exists($id, this->$items)){
$storedItem=this->$items[$id];
}
}
this->$items[$id]=$storedItem;
}
}
在 __construct
之前缺少 function 关键字
<?php
namespace App;
class Cart{
public $items=null;
public function __construct($oldCart){
if($oldCart){
$this->items=$oldCart->items;
}
}
public function add($item,$id){
$storedItem= ['name'=>$item];
if($this->items)
{
if(array_key_exists($id, $this->items)){
$storedItem=$this->items[$id];
}
}
$this->items[$id]=$storedItem;
}
}
this->$items[$id]=$storedItem;
See, this 是一个关键字,是$this,通过this访问变量时不需要在访问的变量(在本例中为items)上做$符号,所以它应该总是:
$this->items[$id] = $storedItem;
并且请更好地缩进和组织您的代码,这非常混乱并且可能有不止一个错误。
你的 __construct
前面需要有 function
这个词,或者更好 public function
将行更改为:
public function __construct($oldCart)
在这里读出:Line no 8
你应该试试这个:
<?php
namespace App;
class Cart{
public $items=null;
public function __construct($oldCart){
if($oldCart){
this->$items=$oldCart->items;
}
}
public function add($item,$id){
$storedItem= ['name'=>$item];
if(this-> $items)
{if(array_key_exists($id, this->$items)){
$storedItem=this->$items[$id];
}
}
this->$items[$id]=$storedItem;
}
}
我有这个问题。当我点击添加到购物车按钮时出现错误:
Parse error: syntax error, unexpected '__construct' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST)
我是 Laravel 的新人,我真的不知道我必须做什么,
这是我添加到购物车按钮上的代码:
<a href="{{route('get.addToCart',[$product->id])}}" class="cart-btn">Add to cart</a>
这是我的路线:
Route::get('add-to-cart/{id}', 'WebController@addToCart')->name('get.addToCart');
我在 webcontroller 中有这个:
public function addToCart(Request $request, $id){
$product = Product::find($id);
$oldCart = Session::has('cart') ? Session::get('cart') : null;
$cart = new Cart($oldCart);
$cart->add($product,$product->id);
$request->session()->put('cart',$cart);
dd($request->session()->get('cart'));
return redirect()->route(get.product);
}
这是我的 cart.php
<?php
namespace App;
class Cart{
public $items=null;
public __construct($oldCart){
if($oldCart){
this->$items=$oldCart->items;
}
}
public function add($item,$id){
$storedItem= ['name'=>$item];
if(this-> $items)
{
if(array_key_exists($id, this->$items)){
$storedItem=this->$items[$id];
}
}
this->$items[$id]=$storedItem;
}
}
在 __construct
之前缺少 function 关键字<?php
namespace App;
class Cart{
public $items=null;
public function __construct($oldCart){
if($oldCart){
$this->items=$oldCart->items;
}
}
public function add($item,$id){
$storedItem= ['name'=>$item];
if($this->items)
{
if(array_key_exists($id, $this->items)){
$storedItem=$this->items[$id];
}
}
$this->items[$id]=$storedItem;
}
}
this->$items[$id]=$storedItem;
See, this 是一个关键字,是$this,通过this访问变量时不需要在访问的变量(在本例中为items)上做$符号,所以它应该总是:
$this->items[$id] = $storedItem;
并且请更好地缩进和组织您的代码,这非常混乱并且可能有不止一个错误。
你的 __construct
前面需要有 function
这个词,或者更好 public function
将行更改为:
public function __construct($oldCart)
在这里读出:Line no 8
你应该试试这个:
<?php
namespace App;
class Cart{
public $items=null;
public function __construct($oldCart){
if($oldCart){
this->$items=$oldCart->items;
}
}
public function add($item,$id){
$storedItem= ['name'=>$item];
if(this-> $items)
{if(array_key_exists($id, this->$items)){
$storedItem=this->$items[$id];
}
}
this->$items[$id]=$storedItem;
}
}