Help with relationships in laravel

1

I'm really enjoying using laravel 5.4 and I have some questions about relationships and how best to use

I have the tables

evento
 -id
 -nome
categorias_evento
 -id
 -id_evento
 -nome
lotes_evento
 -id
 -id_categorias_evento
 -valor
itens_evento
 -id
 -id_categorias_evento
 -item

I want to understand in order to save and access things in them as dynamically as possible

in the ModelEventItem do I have to create a holdout function? and in others how is it?

I want to save everything dynamically and retrieve everything for the popular form (which is all together) which is the best way?

relationships are an event can have several categories one category can have multiple batches and multiple items

    
asked by anonymous 08.06.2017 / 21:32

1 answer

1
  

Relationships are an event can have several categories a category can have multiple batches and multiple items

Event

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Evento extends Model
{
    //Nome da tabela.
    protected $table = 'eventos';

    //Primary Key da Tabela.
    protected $primaryKey = 'id';

    //Item em um Array que são utilizados 
    //para preenchimento da informação.
    protected $fillable   = ['nome'];

    //Deseja trabalhar ou não com campos created_at 
    //e updated_at do tipo timestamp nessa tabela.
    public  $timestamps   = false;

    //Relacionamento 1 para muitos
    public function categorias()
    {
        //     $this->hasMany(relação, chave estrangeira da relação, primary key local);
        return $this->hasMany('App\Categorias', 'id_evento', 'id');
    }

}

Categories

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Categorias extends Model
{
    //Nome da tabela.
    protected $table = 'categorias_evento';

    //Primary Key da Tabela.
    protected $primaryKey = 'id';

    //Item em um Array que são utilizados
    //para preenchimento da informação.
    protected $fillable   = ['id_evento','nome'];

    //Deseja trabalhar ou não com campos created_at
    //e updated_at do tipo timestamp nessa tabela.
    public  $timestamps   = false;

    //Relacionamento
    public function evento()
    {
        //$this->belongsTo(relação, chave estrangeira local, primary key da relação);
        return $this->belongsTo('App\Evento', 'id_evento', 'id');
    }

    //Relacionamento 1 para muitos
    public function lotes()
    {
        //$this->hasMany(relação, chave estrangeira da relação, primary key local);
        return $this->hasMany('App\Lotes', 'id_categorias_evento', 'id');
    }

    //Relacionamento 1 para muitos
    public function itens()
    {
        //$this->hasMany(relação, chave estrangeira da relação, primary key local);
        return $this->hasMany('App\Itens', 'id_categorias_evento', 'id');
    }
}

Lots

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Lotes extends Model
{
    //Nome da tabela.
    protected $table = 'lotes_evento';

    //Primary Key da Tabela.
    protected $primaryKey = 'id';

    //Item em um Array que são utilizados 
    //para preenchimento da informação.
    protected $fillable   = ['id_categorias_evento','valor'];

    //Deseja trabalhar ou não com campos created_at 
    //e updated_at do tipo timestamp nessa tabela.
    public  $timestamps   = false;

    //Relacionamento
    public function categorias()
    {
        //$this->belongsTo(relação, chave estrangeira local, primary key da relação);
        return $this->belongsTo('App\Categorias', 'id_categorias_evento', 'id');
    }

}

Items

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Itens extends Model
{
    //Nome da tabela.
    protected $table = 'itens_evento';

    //Primary Key da Tabela.
    protected $primaryKey = 'id';

    //Item em um Array que são utilizados 
    //para preenchimento da informação.
    protected $fillable   = ['id_categorias_evento','item'];

    //Deseja trabalhar ou não com campos created_at 
    //e updated_at do tipo timestamp nessa tabela.
    public  $timestamps   = false;

    //Relacionamento
    public function categorias()
    {
        //$this->belongsTo(relação, chave estrangeira local, primary key da relação);
        return $this->belongsTo('App\Categorias', 'id_categorias_evento', 'id');
    }

}

09.06.2017 / 14:10