#php #laravel-5 #laravel-blade
Вопрос:
Вот в чем ошибка
![Вот это ошибка][1]
====
Я не могу заставить страницу перейти непосредственно к списку покупок. ошибка здесь говорит о том, что переменная магазина не определена в цикле для отображения товаров, которые были добавлены в корзину. но данные уже внесены в базу данных
cart.blade.php
<div class="site-section">
<div class="container">
<div class="row mb-5">
<form class="col-md-12" method="post">
<div class="site-blocks-table">
<table class="table table-bordered">
<thead>
<tr>
<th class="product-thumbnail">Image</th>
<th class="product-name">Product</th>
<th class="product-price">Price</th>
<th class="product-quantity">Quantity</th>
<th class="product-total">Total</th>
</tr>
</thead>
<tbody>
@foreach( $shop as $customer )
<tr>
<th class ="row">{{ $loop->iteration }}</th>
<td>{{ $customer->image }}</td>
<td>{{ $customer->product }}</td>
<td>{{ $customer->price }}</td>
<td>{{ $customer->quantity }}</td>
<td>{{ $customer->total_price_prdt }}</td>
<td>
<a href="#" class="btn btn-primary btn-sm">X</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</form>
</div>
<div class="row">
<div class="col-md-6">
<div class="row mb-5">
<div class="col-md-6 mb-3 mb-md-0">
<button class="btn btn-primary btn-sm btn-block">Update Cart</button>
</div>
<div class="col-md-6">
<button class="btn btn-outline-primary btn-sm btn-block">Continue Shopping</button>
</div>
</div>
<div class="row">
<div class="col-md-12">
<label class="text-black h4" for="coupon">Coupon</label>
<p>Enter your coupon code if you have one.</p>
</div>
<div class="col-md-8 mb-3 mb-md-0">
<input type="text" class="form-control py-3" id="coupon" placeholder="Coupon Code">
</div>
<div class="col-md-4">
<button class="btn btn-primary btn-sm">Apply Coupon</button>
</div>
</div>
</div>
<div class="col-md-6 pl-5">
<div class="row justify-content-end">
<div class="col-md-7">
<div class="row">
<div class="col-md-12 text-right border-bottom mb-5">
<h3 class="text-black h4 text-uppercase">Cart Totals</h3>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<span class="text-black">Subtotal</span>
</div>
<div class="col-md-6 text-right">
<strong class="text-black"></strong>
</div>
</div>
<div class="row mb-5">
<div class="col-md-6">
<span class="text-black">Total</span>
</div>
<div class="col-md-6 text-right">
<strong class="text-black"></strong>
</div>
</div>
<div class="row">
<div class="col-md-12">
<button class="btn btn-primary btn-lg py-3 btn-block"
onclick="window.location='checkout.html'">Proceed To Checkout</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
устройство для управления тележкой
<?php
namespace AppHttpControllers;
use Appaddcart;
use IlluminateSupportFacadesDB;
use Appcart;
use IlluminateHttpRequest;
use Auth;
use AppUser;
class cartController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
// return view('customers/singleshop');
}
public function addToCart(Request $request)
{
// $product = DB::select('select * from add_cart where id='.$id);
// $user = Auth::user();
// $ac = new addcart();
// $ac->product = $request->product;
// $ac->product_price = $request->price;
// $ac->item_model = $request->model;
// $ac->quantity = $request->qty;
// $ac->save();
// // $shop_id = $ac->id;
// return redirect('/cart');
}
/**
* Show the form for creating a new resource.
*
* @return IlluminateHttpResponse
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpResponse
*/
public function store(Request $request)
{
$user = Auth::user();
$ac = new addcart();
$ac->product = 'tanktop';
// $ac->product = !empty($request->product) ? $request->product : 'default value';
$ac->product_price = 500.000;
$ac->item_model = $request->model;
$ac->quantity = $request->qty;
$ac->save();
// $shop_id = $ac->id;
return redirect('cart', $shop);
}
/**
* Display the specified resource.
*
* @param Appcart $cart
* @return IlluminateHttpResponse
*/
public function show(cart $cart)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param Appcart $cart
* @return IlluminateHttpResponse
*/
public function edit(cart $cart)
{
//
}
/**
* Update the specified resource in storage.
*
* @param IlluminateHttpRequest $request
* @param Appcart $cart
* @return IlluminateHttpResponse
*/
public function update(Request $request, cart $cart)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param Appcart $cart
* @return IlluminateHttpResponse
*/
public function destroy(cart $cart)
{
//
}
}
[1]: https://i.stack.imgur.com/3ukSj.png
Комментарии:
1. Магазин с неопределенной переменной. Там нет переменной $shop
2. Наличие » данных, введенных в базу данных», не делает ее доступной в представлении. Передача Данных В Представления
3. Пожалуйста, покажите функцию индекса контроллера корзины, поскольку это маршрут, в котором отсутствует переменная $shop.
4. да, я добавил весь код в корзину contorller @JordanCasey
Ответ №1:
Вашему контроллеру корзины потребуется отобразить представление или перенаправить на маршрут, который отображает представление с переменной магазина. Я ожидал, что это будет ваш индекс. Поскольку ваш индекс не определен, вы можете добавить переменную магазина в представление и привязать ее, как показано ниже. Я должен верить, что ваш магазин-это переменная в размере $ac. Кроме того, я предполагаю, что ваш взгляд на лезвие /resources/views/customers.cart.blade.php на основе вашего последующего комментария. Если $ac не входит в ваш список продуктов, пожалуйста, замените $ac этим ожидаемым списком.
public function store(Request $request)
{
$user = Auth::user();
$ac = new addcart();
$ac->product = 'tanktop';
// $ac->product = !empty($request->product) ? $request->product : 'default value';
$ac->product_price = 500.000;
$ac->item_model = $request->model;
$ac->quantity = $request->qty;
$ac->save();
// $shop_id = $ac->id;
return view('customers/cart',['shop'=>$ac]);
}
Комментарии:
1. мои представления папок /resources/views/customers/cart.blade.php @JordanCasey
2. @BayuRamadhan Я соответствующим образом обновил код
Ответ №2:
Когда вы хотите перенаправить на другую страницу и хотите использовать новую переменную, вы ЧАЩЕ всего делаете переменную доступной для этого, вы чаще всего используете compact, with
методы.
мое предложение таково:
In your Controller/@store
return redirect()->route('Merchant view')->with( ['shop => $shop] );
Это сработает