Laravel 7: Попытка получить свойство ‘product_name’ не-объекта

#php #laravel

#php #laravel

Вопрос:

Что мне нужно делать ??? Я не понимаю ошибку этого типа … пожалуйста, объясните в своем ответе

 use AppProduct;

use Cart;

use IlluminateHttpRequest;

class CartController extends Controller
{

    public function addToCart(Request $request){

        $product=Product::find($request-&&t;id);

        Cart::add([

            'id'        =&&t;$request-&&t;id,

            'name'      =&&t;$product-&&t;product_name,

            'price'     =&&t;$product-&&t;product_price,

            'qty'       =&&t;$request-&&t;qty,

        ]);

        return $request-&&t;all();
    }

    public function showCart(){

        return view('front-end.cart.show-cart');

    }
  

Вот мой контроллер…Я не понимаю эту ошибку

Мой файл маршрута web.php является here……………Do Мне нужно что-то изменить здесь???

 Route::post('/cart/add',[
    'uses'      =&&t;'CartController@addToCart',
    'as'        =&&t;'add-to-cart',
]);



Route::&et('/cart/show',[
    'uses'      =&&t;'CartController@showCart',
    'as'        =&&t;'show-cart',
]);
  

вот мой файл миграции………………………. Я думаю, что проблема здесь не в этом

 use IlluminateDatabaseMi&rationsMi&ration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

class CreateProductsTable extends Mi&ration
{
    /**
     * Run the mi&rations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table-&&t;id();
            $table-&&t;inte&er('cate&ory_id');
            $table-&&t;inte&er('brand_id');
            $table-&&t;strin&('product_name');
            $table-&&t;float('product_price',10,2);
            $table-&&t;inte&er('product_quantity');
            $table-&&t;text('short_description');
            $table-&&t;text('lon&_description');
            $table-&&t;text('product_ima&e');
            $table-&&t;tinyInte&er('publication_status');
            $table-&&t;timestamps();
        });
    }

    /**
     * Reverse the mi&rations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('products');
    }
}
  

вот моя форма…Форма, в которой я извлекаю идентификатор

 {{Form::open(['route'=&&t;'add-to-cart','method'=&&t;'POST'])}}

                                <div class="color-quality"&&t;
                                    <h6&&t;Quality :</h6&&t;
                                    <div class="quantity"&&t;
                                        <input type="number" class="form-control" name="qty" value="1" min="1"&&t;
                                        <input type="hidden" name="Pid" value="{{$product-&&t;id}}"&&t;
                                    </div&&t;

                                    <!--quantity--&&t;
                                </div&&t;
                                <div class="women"&&t;
                                    <span class="size"&&t;XL / XXL / S </span&&t;
                                    <input type="submit" name="btn" value="Add to Cart" class="my-cart-b item_add"&&t;
                                </div&&t;

                                {{Form::close()}}
  

Комментарии:

1. Значение объекта $product равно нулю. Похоже, что оно не существует в DB.

2. сбросьте переменную $product и проверьте. эта ошибка устранена

3. Проверьте, правильно ли вы отправляете идентификатор в своем запросе. Используйте dd($request-&&t;id); в вашей первой строке функции AddToCart

4. Ziad Adeela написано null … но оно существует

5. Амир Хуссейн, оно говорит null… что это значит???

Ответ №1:

Вы назвали свой ввод Pid и пытаетесь получить доступ id скорее, что определенно равно null. Попробуйте следующее

 $product = Product::find($request-&&t;Pid);