为什么数据不传递到 Laravel 中的视图?

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


作为我的第一个 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'));

   }

}

   

购物车.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

网页.php


Route::get('/cart', 'CartController@index')->name('cart');

Route::get('/cart/{id}', 'CartController@show')->name('cart');


暮色呼如
浏览 128回答 2
2回答

潇湘沐

在您的索引方法中,您的变量被命名为$product(单数),但您将products(复数)发送到您的视图。因此,这将null在您看来。纠正拼写错误,您的索引应该没问题。对于您的 show 方法,@TimLevis 已经指出您正在检索单个实例Product而不是集合。

ABOUTYOU

return&nbsp;view('products',&nbsp;compact('product'));除非有数组属性,否则无法迭代单个对象。您可以像这样 {{$product->price}} 访问视图中的数据
打开App,查看更多内容
随时随地看视频慕课网APP