Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Como fazer o UPDATE 1 para 1, com quatro tabelas em laravel #183

Open
Richar2 opened this issue Nov 28, 2018 · 1 comment
Open

Como fazer o UPDATE 1 para 1, com quatro tabelas em laravel #183

Richar2 opened this issue Nov 28, 2018 · 1 comment

Comments

@Richar2
Copy link

Richar2 commented Nov 28, 2018

Estou trabalhando com um banco de dados já povoado. Ele possui quatro tabelas (Aluno, clinico, Familia e TipoCompulsao), onde Aluno recebe foreignkey das três tabelas;

Model Aluno

class Aluno extends Model{

public $timestamps = false;
protected $fillable =[
                    'Nome','Sobrenome','Cpf','Email','Altura','Telefone','Endereco'
];

public function clinico(){


    return $this->belongsTo(Clinico::class);
}
public function familia()
{
    return $this->belongsTo(Familia::class);
}
 public function tipocompulsao()
{
    return $this->belongsTo(Tipocompulsao::class, );

model clinico

class Clinico extends Model
{
public $timestamps = false;
protected $fillable=[
'hasAnsiedade',
'hasInsonia',
'hasHipertensao',
'hasDiabetes',
'hasAlergias',
'hasDisturbiosOncologicos',
'hasProblemasRenais',
'hasMenopausa',
'hasHipotiroidismo',
'hasColesterol',
'hasFigado',
'hasOutros'
];

public function aluno() {
      return $this->hasOne(Aluno::class );

  }

}

model familia

class Familia extends Model
{
public $timestamps = false;
protected $fillable=[

     'hasObesidade',
'hasDoencaRenal',
    'hasHipertensao', 
    'hasColesterolGorduraFigado'  

  ];
  public function aluno() {
      return $this->hasone(Aluno::class);

  }

}

Tipocompulsao


    class Tipocompulsao extends Model{

      public $timestamps = false;
      protected $fillable=[
        'hasCompulsaoDoce',
    'hasCompulsaoSalgado'  
      ];

      public function aluno() {
          return $this->hasone(Aluno::class);

      }
}
Controller para salvar dataform

public function update(Request $request,$id)
{


$tipoco=Tipocompulsao::update($dataform);
$clinico= Clinico::update($dataform);
$familia=Familia::update($dataform);
$aluno=Aluno::update ($dataformU)->where($id);

$aluno->familia()->associate($familia);
$aluno->clinico()->associate($clinico);
$aluno->tipocompulsao()->associate($tipoco);
$aluno->save();

O principal problema que eu queria resolver e: como fazer o UPDATE em tabelas com relacionamento 1 para 1?

@romulo2735
Copy link

No update tu pega o $id do usuário logado, e passa os campos, é basicamente do mesmo jeito que você faz para criar um novo registro no metodo store(), se você estiver usando o padrão dos metodos.

No momento de salvar usar o update em vez do save().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants