数据未显示在视图页面中。视图页面已加载,但未传递数据。
作为我的第一个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');
答案 0 :(得分:2)
在索引方法中,变量名为$product
(单数),但是您正在向视图发送products
(复数)。因此,您认为这是null
。更正拼写错误,您的索引应该没问题。
对于您的show方法,@ TimLevis已经指出您正在检索Product
的单个实例而不是集合。
答案 1 :(得分:1)
return view('products', compact('product'));
除非有数组属性,否则不能迭代单个对象。 您可以像这样{{$ product-> price}}
访问数据