Неопределенная переменная : просмотр магазина в магазине элементов списка для каждого элемента

#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] );

 

Это сработает