Eloquent ORM relationship on laravel 5

S4L4H

I create messages system on laravel 5, but I cant get sender information on recuperation page (such as name email...)

I have messages table:

public function up()
    {
        Schema::create('messages', function(Blueprint $table){
            $table->increments('id');
            $table->integer('destination_id')->unsigned();
            $table->integer('source_id')->unsigned();
            $table->string('sujet');
            $table->text('contenu');
            $table->boolean('vu')->default(0);
            $table->boolean('repondu')->default(0);
            $table->timestamps();
            $table->foreign('source_id')->references('id')->on('users')->onDelete('cascade');
            $table->foreign('destination_id')->references('id')->on('users')->onDelete('cascade');
        });
    }

On the models I create add this:

Message Model:

class Message extends Model {

    public function user()
    {
        return $this->belongsTo('App\User');
    }
}

and on User model I add this function:

public function message()
{
    return $this->hasMany('App\Message');
}

But when i Try to fetch user messages and want to get for example {{$message->user->name}} I get a error message that I try to get property of non-object

this is the controller to this page

Filip Koblański

Well default user's key field when you're using: return $this->belongsTo('App\User'); if a table name is like: table_name_id in this example will be like: user_id.

I see that you need relations to user table on:

$table->integer('destination_id')->unsigned();
$table->integer('source_id')->unsigned();

so the best solution will be to create two methods like:

class Message extends Model 
{
    public function source()
    {
        return $this->belongsTo('App\User', 'source_id');
    }

    public function destination()
    {
        return $this->belongsTo('App\User', 'destination_id');
    }
}

then you can call:

{{$message->source->name}}

and

{{$message->destination->name}}

Of corse you can name this method in other way, like: sourceUser() for example.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Eloquent ORM laravel 5 Get Array of ids

From Dev

Laravel Eloquent all with relationship

From Dev

Laravel Eloquent ORM relationship naming conventions

From Dev

Laravel - Eloquent Self Relationship

From Dev

Laravel 4 and Eloquent ORM - How to select the last 5 rows of a table

From Dev

Laravel Eloquent - firstOrCreate() on a relationship

From Dev

Laravel Eloquent Relationship Confusion

From Dev

Laravel 5 Eloquent ORM - Many to Many through Many to Many

From Dev

Laravel 5 Eloquent Relationship - Has Many Though

From Dev

Laravel Eloquent hasMany relationship

From Dev

Eloquent ORM optional Relationship

From Dev

Laravel 5.1 eloquent orm relationship

From Dev

Eloquent ORM conditional model relationship

From Dev

Laravel 5 - ORM has() Relationship (Inverse - notHas)

From Dev

Laravel 5 Eloquent relationship belongsToMany

From Dev

Laravel Eloquent ORM replicate

From Dev

Laravel eloquent Relationship Query

From Dev

Laravel 5 Eloquent count many to many relationship

From Dev

Laravel Eloquent relationship (5 tables)

From Dev

Laravel eloquent ORM beginner

From Dev

Write to hasMany relationship with Eloquent ORM/Laravel

From Dev

Laravel Eloquent ORM relationship naming conventions

From Dev

Which relationship type to choose in Laravel Eloquent ORM on multiple relationships case

From Dev

Laravel Eloquent ORM filtering with relationship

From Dev

Laravel 5 one to many eloquent relationship

From Dev

Laravel 5 Eloquent Relationship - Has Many Though

From Dev

Eloquent ORM optional Relationship

From Dev

Upload image to database in laravel 5 using eloquent ORM?

From Dev

Relationship queries in Eloquent ORM

Related Related

HotTag

Archive