Naveen Kumar
Naveen Kumar

Reputation: 1616

How to update a row in DB without overwriting the existing data with laravel 5.2

I have a table which stores the user's interested topics along with the user id and topic id. The table will look like

Topic name     topic id     User-id
   Sports         1             1
   Education      2             3
   Family         3             1

What i want to do is when a new user , say user-id '3' adds his interest as topic sports , then the first row should look like this

Topic name     topic id     User-id
   Sports         1             1,3

When i try to update it overwrites the whole column like

Topic name     topic id     User-id
   Sports         1             3 

What is the right approach to do this ?

Upvotes: 0

Views: 276

Answers (1)

Ismail RBOUH
Ismail RBOUH

Reputation: 10450

The right approach is to use Many-To-Many relationship:

Tables:

users (id, ....);
topics (id, ....);
topic_user (topic_id, user_id);

PHP:

class User extends Model {

    public function topics() {
        return $this->belongsToMany('App\Topic');
    }
}

and :

class Topic extends Model {

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

For more details please refer to https://laravel.com/docs/5.2/eloquent-relationships.

I hope this will help.

Upvotes: 1

Related Questions