Laravel update pivot table (many to many relationship) -


i have tables named users, questions, answers , answer_user. can data tables using $user->answers method couldn't figure out how update or insert if not exists. (answer_user table)

user table:

$table->increments('id'); $table->string('email', 255)->unique(); $table->string('password', 255); 

questions table:

$table->increments('id'); $table->string('title', 255); 

answers table:

$table->increments('id'); $table->string('text'); $table->integer('question_id')->unsigned();   $table->foreign('question_id')       ->references('id')       ->on('questions')       ->ondelete('cascade'); 

answer_user table

$table->increments('id'); $table->integer('user_id')->unsigned(); $table->integer('question_id')->unsigned(); $table->integer('answer_id')->unsigned();   $table->foreign('user_id')       ->references('id')       ->on('users')       ->ondelete('cascade');  $table->foreign('question_id')       ->references('id')       ->on('questions')       ->ondelete('cascade');  $table->foreign('answer_id')       ->references('id')       ->on('answers')       ->ondelete('cascade'); 

my models:

class question extends model {      public function answer()     {         return $this->hasmany('app\answer');     } }  class answer extends model {      public function question()     {         return $this->belongsto('app\question');     }  } class user extends authenticatable {     public function answers()     {         return $this->belongstomany('app\answer');     } } 

you can see reference here. when use attach, create new rows in answer_user table. if not want rows anymore, can detach it. or can use sync when want add new rows , detach old rows in answer_user table (sync = detach + attach again)

class question extends model {     public function user()     {         //the question should belong user.     }     public function answers()      {         //if use hasmany, method should plural nouns         return $this->hasmany('app\answer');     } }  class answer extends model {     //one answer should belong 1 question , 1 user      public function user()             {         return $this->belongsto('app\user');      }      public function question()     {         return $this->belongsto('app\question');     }  } class user extends authenticatable {     public function answers()     {             return $this->hasmany('app\answer');     } } 

if want use many many relationship, can imagine 1 question belongs many tags, , 1 tag has many questions. can define it.

class tag extends model {     public function questions()     {         return $this->belongstomany('app\question');     } }  class question extends model {     public function tags()     {         return $this->belongstomany('app\tag');     } } 

if want have relationships, should define in tables. sorry because of english.


Comments

Popular posts from this blog

ZeroMQ on Windows, with Qt Creator -

unity3d - Unity SceneManager.LoadScene quits application -

python - Error while using APScheduler: 'NoneType' object has no attribute 'now' -