Попытка получить свойство 'id' необъекта в demo.blade. php - PullRequest
0 голосов
/ 28 января 2020

Привет! Я работаю над страницей оформления заказа в laravel и отправил некоторые данные о продукте из корзины на оформление заказа и пытаюсь распечатать все детали из объекта json, но я продолжаю получать сообщение об ошибке «Попытка получить свойство» id 'необъекта

Функция контроллера

    public function bill(Request $request){

         $input = $request->all();
         return view('demo')->with('product' , $request->product)
                            ->with('subtotal' , round($request->subtotal));
     } 

форма корзины

    <form method="post" action="{{ route('pay')}}">
          {{ csrf_field() }}

           @foreach($cart as $product)
               <input type="hidden" name="product[]" value="{{ $product }}">
           @endforeach
           <input type="hidden" name="subtotal" value="{{$subtotal}}">
           <button type="submit" class="gray_btn">Checkout</button>
    </form>

страница блейда

    @foreach($product as $input)

        {{ $input }}

        {{ $input->id }}

    @endforeach

когда я только печатаю ввод, я получаю результат как

    {"id":"10","name":"S007-4ft","price":40,"quantity":"102","attributes":{"image":"glassfilms\/December2019\/MyelERNBbAWhGRbKWiCK.jpg","crm":"PRO209"},"conditions":[]} {"id":"7","name":"Frosted 007-4ft","price":40,"quantity":"103","attributes":{"image":"glassfilms\/December2019\/ZJgWUNaYrPnvsoRfuagv.jpg","crm":"PRO105"},"conditions":[]} 

, но когда я пытаюсь распечатать идентификатор только с использованием {{input->id }}, я получаю ошибку.

маршрут

Route::post('pay', 'RazorpayController@bill')->name('pay');

Ответы [ 2 ]

2 голосов
/ 28 января 2020

Вы должны передать массив, чтобы получить доступ по ключу, т. Е. Вызвать json_decode() при его возврате:

    public function bill(Request $request) {
        $input = $request->all();
        return view('demo')
            ->with('product', json_decode($request->product, true)) // <-- here
            ->with('subtotal', round($request->subtotal));
    }

В противном случае возвращаемое значение - просто простая строка в JSON " форма». Ошибка сказать, что ясно, хотя: не объект.

0 голосов
/ 28 января 2020

Вы используете json object как php object, пожалуйста, сначала расшифруйте ваш json объект, чем вы можете использовать его как php объект:

$obj = json_decode($input);
$obj->id // Now you can use it like this
...