Php 为什么数据没有传递到Laravel中的视图?

Php 为什么数据没有传递到Laravel中的视图?,php,laravel,woocommerce,e-commerce,Php,Laravel,Woocommerce,E Commerce,查看页面中不显示数据。已加载视图页,但未传递数据 作为我的第一个Laravel项目,我无法找出错误?如果有人能帮助解决这个问题,那将是一个很大的帮助 CartController.php use Illuminate\Http\Request; use App\Product; use App\Category; class CartController extends Controller { public function index() { $prod

查看页面中不显示数据。已加载视图页,但未传递数据

作为我的第一个Laravel项目,我无法找出错误?如果有人能帮助解决这个问题,那将是一个很大的帮助

CartController.php

use Illuminate\Http\Request;
use App\Product;
use App\Category;

class CartController extends Controller
{

    public function index()
    {
         $product = Product::get();
         return view ('cart')->with(compact('products'));
         
     }
           
    public function show($id)
    {
        $product = Product::find($id);
       
        return view('cart')->with(compact('product'));
   }
}
   
cart.blade.php

@foreach($product as $p) 
    <tr class="">                                     
        <td class="d-none d-md-table-cell">
            <a href="#"><img class="img-fluid max-width-100 p-1 border border-color-1" src="{{asset('/storage/admin/'.$p ['prod_image_path'] ) }}" alt="Image Description"></a>
        </td>
        
        <td data-title="Product">
            <a href="#" class="text-gray-90">{{ $p ['prod_name'] }}</a>
        </td>
       
        <td data-title="Price">
            <span class="">LKR {{ $p ['prod_price'] }}.00</span>
        </td>
    </tr>
@endforeach

在索引方法中,变量名为$product singular,但您将产品以复数形式发送到视图中。因此,在您的视图中,这将是空的。纠正这个拼写错误,你的索引应该是正确的


对于show方法,@TimLevis已经指出,您正在检索产品的单个实例,而不是集合。

在索引方法中,您的变量名为$Product singular,但您正在将产品以复数形式发送到视图中。因此,在您的视图中,这将是空的。纠正这个拼写错误,你的索引应该是正确的

return view('products', compact('product'));
对于show方法,@TimLevis已经指出,您正在检索产品的单个实例,而不是集合

return view('products', compact('product'));
除非存在数组属性,否则不能迭代单个对象。 您可以像这样访问视图中的数据{{$product->price}

除非存在数组属性,否则不能迭代单个对象。
您可以像这样访问视图中的数据{{$product->price}

$product是产品模型的单个实例或null;为什么将@foreach$product称为$p?您只需访问每个属性,如$product->prod\U price。编辑:哦,等等;你两者都在做。。。在一次调用中,您传递了一个集合或产品,但在另一次调用中,您只传递了1。这是您的问题所在。您的视图只能有一个模型。它可以是单个项目,也可以是项目列表。列表在您的情况下更有意义,因为它仍然支持Cart中只有一项的场景,即{{$p->prod_name}}而不是{{$p['prod_name']}}@sta,这两者之间有什么区别?@Zeenath您不能以这种方式访问数组$data['name'],和$data->name,仅适用于对象$product是产品模型的单个实例或null;为什么将@foreach$product称为$p?您只需访问每个属性,如$product->prod\U price。编辑:哦,等等;你两者都在做。。。在一次调用中,您传递了一个集合或产品,但在另一次调用中,您只传递了1。这是您的问题所在。您的视图只能有一个模型。它可以是单个项目,也可以是项目列表。列表在您的情况下更有意义,因为它仍然支持Cart中只有一项的场景,即{{$p->prod_name}}而不是{{$p['prod_name']}}@sta,这两者之间有什么区别?@Zeenath您不能以这种方式访问数组$data['name'],和$data->name,仅适用于对象。我需要在此添加购物车功能。安装或编码的最佳实践是什么?请引导我。这太复杂了,无法评论。有很多很好的教程,如果你继续学习laravel,我建议你使用laracast,如果你在某个特定问题上需要帮助,请问另一个问题:我需要向这个添加购物车功能。安装或编码的最佳实践是什么?请引导我。这太复杂了,无法评论。有很多很好的教程,如果你继续学习laravel,我建议你使用laracast,如果你在某个特定问题上需要帮助,请问另一个问题: