Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

rogi's avatar
Level 1

Form - how to put id of one table to column another table (connect id's)

Hi,

I have problem with my Laravel project.. I have three tables: Users, Tasks and Samples. I want in my table "Samples" is ID of the table "Tasks or "task.id" .. For the user_id column code works fine, they connect users with theirs tasks and samples but i do not understand what I have to do to connect id from table Tasks with task_id in table Samples. Basically, i want in the table Samples to be able to see which task they belong to(i want to connect them with corresponding task.id).

My tables:

tasks table:

id| task_name| user_id

samples table:

id| sample_name| task_id| user_id

This tables has many records...

Code:

in sample model is:

   public function user(){

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

    return $this->belongsTo('App\Task');
}}

in task model is:

      public function user(){

        return $this->belongsTo('App\User');
    }

    public function samples(){
         
        return $this->hasMany('App\Sample'); //zadatak ima više uzoraka
}

and in controller SamplesController:

public function store(Request $request)
   {


       $sample = new Sample;
      
           $sample->oznaka_uzorka = $request->input('oznaka_uzorka');
           $sample->koordinata_x = $request->input('koordinata_x');
           $sample->koordinata_y = $request->input('koordinata_y');
           $sample->plocica = $request->input('plocica');
           $sample->preparata = $request->input('preparata');
           $sample->slem = $request->input('slem');
           $sample->m_slem = $request->input('m_slem');
           $sample->palino = $request->input('palino');
           $sample->nano = $request->input('nano');
           $sample->t_l = $request->input('t_l');
           $sample->net = $request->input('net');
           $sample->kal = $request->input('kal');
           $sample->cao_mgo = $request->input('cao_mgo');
           $sample->gran = $request->input('gran');
           $sample->sfz = $request->input('sfz');
           $sample->kem = $request->input('kem');
           $sample->rtg = $request->input('rtg');
           $sample->ph = $request->input('ph');
           $sample->icp_pr = $request->input('icp_pr');
           $sample->aas = $request->input('aas');
           
           $sample->user_id = auth()->user()->id;  //- this work fine, they connect sample_id for          user_id
       

           $sample->task_id =????? --> what code is for that? :/

     
           $sample->save();
           return redirect ('/tasks')->with('success','Uzorak kreiran'); 
       }

thanks!

0 likes
2 replies
burlresearch's avatar

I think what you want is a has-many-through relation from Users -> Samples.

This way, your table samples.task_id refers to Task model and, your table task.user_id refers to User model.

Then

App\User

    public function samples()
    {
        return $this->hasManyThrough('App\Sample', 'App\Task');
    }

One issue you have is that a Sample only belongsTo one Task:

App\Sample

public function task(){  // not: tasks()
    return $this->belongsTo('App\Task');
}

And, thus, you can associate a new Sample with a Task:

SamplesController

// $sample->task_id =????? --> what code is for that? :/

$sample->task()->associate($task); // you need to provide the `task`
rogi's avatar
rogi
OP
Best Answer
Level 1

Hi @burlresearch, thanks for reply... I saved it through hidden column....

in create.php

<?php $uri = Request::route('id') ?>
        <td style="display:none">{{Form::hidden('uri',$uri)}} </td>

and in my SamplesController i put this code in public function Store

$sample->task_id = $request->input('uri');
1 like

Please or to participate in this conversation.