Laravel 5

Trying to get property 'name' of non-object

  • Avatar de Mery__
    Membre depuis :
    18/05/2019
    Messages :
    2

    Bonjour,

    j'ai une erreur assez bizarre !

    j'ai deux tables :

    categories:

    public function up()
    {
    Schema::create('categories', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('name');
    $table->text('description')->nullable();
    $table->text('image');
    $table->timestamps();
    });
    }
    products: public function up()
    {
    Schema::create('products', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->decimal('price');
    $table->text('remarque')->nullable();
    $table->unsignedBigInteger('category_id');
    $table->unsignedBigInteger('sub_category_id');
    $table->unsignedBigInteger('dimension_id');
    $table->timestamps();
    });
    }

    Model category:

    public function products()
    {
    return $this->hasMany('App\Models\Product');
    }

    Models product:

    public function category()
    {
    return $this->belongsTo('App\Models\Category');
    }

    En excutant le code je recois l'erreur suivante:

    $product = Product::find(1);
    dump( $product->category->name );
    die();

    erreur
    Trying to get property 'name' of non-object
    Merci !

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2524

    Salut,

    Et avec dd($product->category) tu obtiens quoi ?

  • Avatar de TechNov
    Membre depuis :
    31/01/2015
    Messages :
    12

    fait plutot un dump($product) pour voir la structure du retour de la requete pour savoir s'il est bien structuré comme tu t'y attends ou pas.

  • Avatar de Mery__
    Membre depuis :
    18/05/2019
    Messages :
    2

    Bonjour,
    Oui déjà fait, $product est un object qui contient des valeurs, mais y a eu en fait un conflit avec un autre model que j'ai renomé mais qui porte toujours même nom de la class de mon model Product et du coup ça a causé le problème, je l'ai supprimé et tout fonctionne bien

Vous ne pouvez pas répondre à ce sujet.