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

时间:2020-08-11 14:56:38

标签: 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()
    {
         $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

web.php

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

2 个答案:

答案 0 :(得分:2)

在索引方法中,变量名为$product(单数),但是您正在向视图发送products(复数)。因此,您认为这是null。更正拼写错误,您的索引应该没问题。

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

答案 1 :(得分:1)

return view('products', compact('product'));

除非有数组属性,否则不能迭代单个对象。 您可以像这样{{$ product-> price}}

访问数据