Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Larvel错误:尝试获取属性';id';非对象_Php_Laravel_Routes_Laravel Routing - Fatal编程技术网

Php Larvel错误:尝试获取属性';id';非对象

Php Larvel错误:尝试获取属性';id';非对象,php,laravel,routes,laravel-routing,Php,Laravel,Routes,Laravel Routing,我必须从购物车中删除产品,但我发现以下错误: 正在尝试获取非对象的属性“id”(视图: /home/acer/test/project_basket/basket/resources/views/cart.blade.php) 我也尝试了不同的方式。。。删除会话但我不知道似乎有点困难,因为我只需要删除一个产品。 对于购物车中添加的每一个相同的产品,我都会创建一个每次递增一个的徽章 cart.blade.php @foreach($products as $product) <tr>

我必须从购物车中删除产品,但我发现以下错误:

正在尝试获取非对象的属性“id”(视图: /home/acer/test/project_basket/basket/resources/views/cart.blade.php)

我也尝试了不同的方式。。。删除会话但我不知道似乎有点困难,因为我只需要删除一个产品。 对于购物车中添加的每一个相同的产品,我都会创建一个每次递增一个的徽章

cart.blade.php

@foreach($products as $product)
<tr>
   <td><img src="https://via.placeholder.com/400x200/" class="img-cart"></td>
      <td><strong>{{ $product['item']['title'] }}</strong></td>
          <td>
            <form class="form-inline">
                 <input class="form-control" type="text" value="{{ $product['qty'] }}" style="margin-right: 20px" >
                  <!--<button rel="tooltip" class="btn btn-default"><i class="fa fa-pencil"></i></button>-->
                       <form method="POST" action="{{ route('remove.item', $product->id) }}" > 
                             @csrf
                             {{ method_field('DELETE') }}
                             <input type="submit" value="Delete" onclick="return confirm('Are you sure?')" class="btn btn-primary" />
                                    
                       </form>
                     </form>
                   </td>
                  <td>${{ $product['price'] }}</td>
              </tr>
@endforeach
<form method="POST" action="{{ route('remove.item', $product) }}" > 
    @csrf
    {{ method_field('DELETE') }}
    <input type="submit" value="Delete" onclick="return confirm('Are you sure?')" class="btn btn-primary" />
</form>
Cart.php

<?php

namespace App;

class Cart 
{
   public $items = null;
   public $totalQty = 0;
   public $totalPrice = 0;

   public function __construct($oldCart)
   {
     if ($oldCart) {
        $this->items = $oldCart->items;
        $this->totalQty = $oldCart->totalQty;
        $this->totalPrice = $oldCart->totalPrice;
     }
   }

   public function add($item, $id)
   {
     $storedItem = ['qty' => 0, 'price' => $item->price, 'item' => $item];

     if ($this->items ) {

            if (array_key_exists($id, $this->items)) {
                 $storedItem = $this->items[$id];
             }
         }
         $storedItem['qty']++;
         $storedItem['price'] = $item->price * $storedItem['qty'];
         $this->items[$id] = $storedItem;
         $this->totalQty++;
         $this->totalPrice += $item->price;
    }
}

如下所示修改代码

cart.blade.php

@foreach($products as $product)
<tr>
   <td><img src="https://via.placeholder.com/400x200/" class="img-cart"></td>
      <td><strong>{{ $product['item']['title'] }}</strong></td>
          <td>
            <form class="form-inline">
                 <input class="form-control" type="text" value="{{ $product['qty'] }}" style="margin-right: 20px" >
                  <!--<button rel="tooltip" class="btn btn-default"><i class="fa fa-pencil"></i></button>-->
                       <form method="POST" action="{{ route('remove.item', $product->id) }}" > 
                             @csrf
                             {{ method_field('DELETE') }}
                             <input type="submit" value="Delete" onclick="return confirm('Are you sure?')" class="btn btn-primary" />
                                    
                       </form>
                     </form>
                   </td>
                  <td>${{ $product['price'] }}</td>
              </tr>
@endforeach
<form method="POST" action="{{ route('remove.item', $product) }}" > 
    @csrf
    {{ method_field('DELETE') }}
    <input type="submit" value="Delete" onclick="return confirm('Are you sure?')" class="btn btn-primary" />
</form>

然后它会解决您的问题

尝试将
$product->id
替换为
$product['id']
。所以这一行:

<form method="POST" action="{{ route('remove.item', $product->id) }}" > 

对此的更改:

<form method="POST" action="{{ route('remove.item', $product['id']) }}" > 

你必须这样使用

<form method="POST" action="{{route('remove.item',['product'=>$product['id']])}}" > 



您好,我按照建议做了更改,但是我已经得到了这个
未定义索引:id(View:/home/acer/test/project\u basket/basket/resources/views/cart.blade.php)
@GazmirSulcaj我已经更新了我的答案。请再检查一遍
<form method="POST" action="{{route('remove.item',['product'=>$product['id']])}}" > 
<form method="POST" action="{{route('remove.item',['product'=>$product->id])}}" >