Commit c8462000 authored by Marcos Albano's avatar Marcos Albano 💬

Criando relacionamentos

parent 1289b5eb
<?php
namespace App\Http\Controllers;
use App\Models\Lote;
use App\Models\Processo;
class ManyToManyController extends Controller
{
public function manyToMany()
{
//$processos = Processo::where('criado_por_id', 61)->get();
//dd($processos);
//$processo = $processos->lote()->where('id', 254986)->limit(1)->get();
//dd($processo);
// foreach($processos as $processo){
// //echo "<hr>{$processo->criado_por_id}";
// }
}
}
<?php
namespace App\Http\Controllers;
use App\Models\PessoaLote;
use App\Models\SituacaoJuridica;
use Illuminate\Http\Request;
class ManyToOneController extends Controller
{
public function manyToOne()
{
}
}
...@@ -4,40 +4,94 @@ namespace App\Http\Controllers; ...@@ -4,40 +4,94 @@ namespace App\Http\Controllers;
use App\Models\Lote; use App\Models\Lote;
use App\Models\Municipio; use App\Models\Municipio;
use App\Models\Pessoa;
use App\Models\SituacaoJuridica;
class OneToManyController extends Controller class OneToManyController extends Controller
{ {
public function oneToMany() public function oneToMany()
{ {
// RELACIONAMENTO MUNICIPIO/LOTE /* RELACIONAMENTO MUNICIPIO/LOTE */
//$municipios = Municipio::where('id', 2304277)->get()->first(); // //$municipios = Municipio::where('id', 2304277)->get()->first();
//$municipios = Municipio::where('uf', "CE")->orderBy('nome', 'asc')->with('lotes')->get(); // //$municipio = Municipio::where('nome', "ERERÊ")->orderBy('nome', 'asc')->with('lotes')->get();
$municipios = Municipio::where('nome', "ERERÊ")->orderBy('nome', 'asc')->with('lotes')->get(); // $municipios = Municipio::where('uf', "CE")->orderBy('nome', 'asc')->limit(10)->with('lotes')->get();
//dd($municipios); // foreach ($municipios as $municipio) {
// echo "<hr>{$municipio->nome}";
// $lotes = $municipio->lotes()
// ->where('cpf', '<>', null)->limit(1)->get();
// foreach ($lotes as $lote) {
// echo "<hr>{$lote->numero}";
// }
// }
foreach ($municipios as $municipio) { /* RELACIONAMENTO LOTE/PROCESSO */
// $lotes = Lote::where('id', 254986)->with('processos')->get();
// foreach ($lotes as $lote) {
// echo "Número do Lote: " . "{$lote->numero}<hr>";
// $processos = $lote->processos()
// ->where('criado_por_id', 61)->get();
// foreach ($processos as $processo) {
// //dd($processo);
// echo "Id do processo: " . "{$processo->id}<br>";
// }
// }
//echo "<hr>{$municipio->nome}"; /* RELACIONAMENTO LOTE/SITUACAO_JURIDICA */
// $lotes = $municipio->lotes() // $lotes = Lote::where('id', 'LIKE', '%25%')->with('situacaoJuridica')->get();
// ->where('cpf', '<>', null)->get(); // foreach ($lotes as $lote) {
// echo "Número do Lote: " . "{$lote->numero}<hr>";
// $situacoesJuridicas = $lote->situacaoJuridica()
// ->where('id', 3)->get();
// dd($situacoesJuridicas);
// foreach ($situacoesJuridicas as $situacaoJuridica) {
// echo "Situação Jurídica: " . "{$situacaoJuridica->nome}<hr>";
// }
// }
/* RELACIONAMENTO LOTE/PESSOA_LOTE */
// $lotes = Lote::where('municipio_id', 2304608)->with('pessoaLote')->get();
// foreach ($lotes as $lote) {
// echo "Número do Lote: " . "{$lote->numero}<hr>";
// $pessoasLotes = $lote->pessoaLote()
// ->where('lote_id', 254986)->get();
// foreach ($pessoasLotes as $pessoaLote) {
// echo "pessoa_id: " . "{$pessoaLote->pessoa_id}<hr>";
// }
// }
/* RELACIONAMENTO PESSOA/PESSOA_LOTE */
$pessoas = Pessoa::where('id', 46192)->with('pessoas')->limit(10)->get();
$lotes = $municipio->lotes; foreach ($pessoas as $pessoa) {
//dd($lotes); echo "Pessoa: " . "{$pessoa->nome}<hr>";
echo "id: " . "{$pessoa->id}<hr>";
foreach ($lotes as $lote) { $pessoasLotes = $pessoa->pessoas()
//dd($lote); ->where('pessoa_id', 46192)->get();
//echo "<hr>{$lote->numero}";
//dd($pessoasLotes);
foreach ($pessoasLotes as $pessoaLote) {
echo "lote_id: " . "{$pessoaLote->lote_id}<hr>";
} }
} }
} }
public function manyToOne() public function manyToOne()
{ {
$loteNumero = '0002'; /* RELACIONAMENTO LOTE/SITUACAO_JURIDICA */
$lote = Lote::where('numero', $loteNumero)->get()->first(); // $situacoesJuridicas = SituacaoJuridica::where('id', 3)->get()->with('situacaoJuridica')->get();
$municipio = $lote->municipio; // foreach ($situacoesJuridicas as $situacaoJuridica) {
//dd($municipio); // echo "Número do Lote: " . "{$situacaoJuridica->numero}<hr>";
//echo "<hr>{$municipio->nome}"; // $situacaoJuridica = $situacoesJuridicas->lote()
// ->where('situacao_juridica_id', 3)->get();
// dd($situacaoJuridica);
// foreach ($situacoesJuridicas as $situacaoJuridica) {
// echo "Situação Jurídica: " . "{$situacaoJuridica->nome}<hr>";
// //dd($situacaoJuridica);
// }
// }
} }
} }
...@@ -10,28 +10,22 @@ class OneToOneController extends Controller ...@@ -10,28 +10,22 @@ class OneToOneController extends Controller
{ {
public function oneToOne() public function oneToOne()
{ {
$titulo = Titulo::where('lote_id', 277720)->get()->first(); /* RELACIONAMENTO LOTE/SITUACAO_JURIDICA */
$lotes = Lote::where('id', 'LIKE', '%25%')->with('situacaoJuridica')->get();
$lote = $titulo->titulos(); foreach ($lotes as $lote) {
dd($lote); echo "Número do Lote: " . "{$lote->numero}<hr>";
$situacoesJuridicas = $lote->situacaoJuridica()
->where('id', 1)->get();
foreach ($situacoesJuridicas as $situacaoJuridica) {
// echo "Número Título: " . "{$titulo->numero_titulo}<br>"; echo "Situação Jurídica: " . "{$situacaoJuridica->nome}<hr>";
//dd($situacaoJuridica);
// $gleba = $titulo->gleba;
// echo "Municipio: " . "{$gleba->municipio_id}<br>";
// echo "Gleba: " . "{$gleba->nome}";
} }
}
// $titulo = Titulo::where('lote_id', 277720)->get()->first();
// public function oneToOneLoteTitulo() // $lote = $titulo->titulos();
// { // dd($lote);
// $titulo = Titulo::find(10); }
// echo "Número Título: " . "{$titulo->numero_titulo}<br>";
// $gleba = $titulo->gleba;
// echo "Municipio: " . "{$gleba->municipio_id}<br>";
// echo "Gleba: " . "{$gleba->nome}";
// }
} }
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Symfony\Component\Mime\Part\Multipart\RelatedPart;
class Lote extends Model class Lote extends Model
{ {
...@@ -29,4 +30,24 @@ class Lote extends Model ...@@ -29,4 +30,24 @@ class Lote extends Model
return $this->belongsTo(Municipio::class); return $this->belongsTo(Municipio::class);
} }
public function processos()
{
//lote_id: na tabela Processos, id: na tabela Lotes
return $this->hasMany(Processo::class, 'lote_id', 'id');
}
public function situacaoJuridica()
{
//lote_id: na tabela Processos, id: na tabela Lotes
//return $this->belongsTo(SituacaoJuridica::class, 'id', 'situacao_juridica_id');
return $this->hasOne(SituacaoJuridica::class, 'id','situacao_juridica_id');
}
public function pessoaLote()
{
//lote_id: na tabela PessoaLote, id: na tabela Lotes
return $this->hasMany(PessoaLote::class, 'lote_id', 'id');
}
} }
...@@ -20,11 +20,6 @@ class Municipio extends Model ...@@ -20,11 +20,6 @@ class Municipio extends Model
return $results; return $results;
} }
// public function gleba()
// {
// return $this->hasOne(Glebas::class);
// }
public function lotes() public function lotes()
{ {
return $this->hasMany(Lote::class); return $this->hasMany(Lote::class);
...@@ -32,4 +27,6 @@ class Municipio extends Model ...@@ -32,4 +27,6 @@ class Municipio extends Model
// return $this->hasMany(Lote::class, 'municipio_id', 'id'); // return $this->hasMany(Lote::class, 'municipio_id', 'id');
} }
} }
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Pessoa extends Model
{
protected $table = 'regularizacaofundiaria.pessoa';
public function pessoas()
{
return $this->hasMany(PessoaLote::class, 'pessoa_id', 'id');
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class PessoaLote extends Model
{
protected $table = 'regularizacaofundiaria.pessoa_lote';
public function pessoa()
{
return $this->belongsTo(PessoaLote::class);
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Processo extends Model
{
protected $table = 'sige.processos';
protected $fillable = ['id', 'ativo', 'criado_por_id', 'descricao', 'dhc', 'dhm', 'etapa_id', 'lote_id',
'modificado_por_id', 'pendencia_id', 'sem_pendencia', 'situacao', 'conferido',
'data_conferencia', 'conferido_por_id'];
public function search($filter = null)
{
$results = $this->where(function ($query) use ($filter) {
if ($filter) {
$query->where('descricao', 'LIKE', "%{$filter}%");
}
}) //->toSql();
->paginate();
return $results;
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class SituacaoJuridica extends Model
{
protected $table = 'sige.situacoes_juridicas';
public function situacaoJuridica()
{
return $this->belongsTo(SituacaoJuridica::class, 'id', 'situacao_juridica_id');
//CASO FOSSE VINCULAR COM SITUAÇÃO JURÍDICA (ESSE id SERIA O id DA TABELA sige.situacoes_juridicas) - AULA 9
// return $this->hasMany(Lote::class, 'municipio_id', 'id');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateSigeprocessosTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('sige.processos', function(Blueprint $table)
{
$table->bigInteger('id')->primary('processos_pkey');
$table->boolean('ativo');
$table->bigInteger('criado_por_id');
$table->text('descricao')->nullable();
$table->dateTime('dhc');
$table->dateTime('dhm');
$table->bigInteger('etapa_id');
$table->bigInteger('lote_id');
$table->bigInteger('modificado_por_id');
$table->bigInteger('pendencia_id')->nullable();
$table->boolean('sem_pendencia');
$table->text('situacao')->nullable();
$table->boolean('conferido')->nullable()->default(0);
$table->dateTime('data_conferencia')->nullable();
$table->bigInteger('conferido_por_id')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('sige.processos');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToSige.processosTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('sige.processos', function(Blueprint $table)
{
$table->foreign('lote_id', 'fkc504ecd92c5903a0')->references('id')->on('sige.lotes')->onUpdate('RESTRICT')->onDelete('RESTRICT');
$table->foreign('pendencia_id', 'fkc504ecd957a7d5b4')->references('id')->on('sige.pendencias')->onUpdate('RESTRICT')->onDelete('RESTRICT');
$table->foreign('modificado_por_id', 'fkc504ecd962f306bd')->references('id')->on('sec_user')->onUpdate('RESTRICT')->onDelete('RESTRICT');
$table->foreign('etapa_id', 'fkc504ecd96fed6d34')->references('id')->on('sige.etapas')->onUpdate('RESTRICT')->onDelete('RESTRICT');
$table->foreign('criado_por_id', 'fkc504ecd975c5065e')->references('id')->on('sec_user')->onUpdate('RESTRICT')->onDelete('RESTRICT');
$table->foreign('conferido_por_id', 'fkc504ecd9fa77078d')->references('id')->on('sec_user')->onUpdate('RESTRICT')->onDelete('RESTRICT');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('sige.processos', function(Blueprint $table)
{
$table->dropForeign('fkc504ecd92c5903a0');
$table->dropForeign('fkc504ecd957a7d5b4');
$table->dropForeign('fkc504ecd962f306bd');
$table->dropForeign('fkc504ecd96fed6d34');
$table->dropForeign('fkc504ecd975c5065e');
$table->dropForeign('fkc504ecd9fa77078d');
});
}
}
...@@ -3,8 +3,10 @@ ...@@ -3,8 +3,10 @@
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::get('many-to-one', 'OneToManyController@manyToOne'); Route::get('many-to-many', 'ManyToManyController@manyToMany');
Route::get('many-to-one', 'ManyToOneController@manyToOne');
Route::get('one-to-many', 'OneToManyController@oneToMany'); Route::get('one-to-many', 'OneToManyController@oneToMany');
//Route::get('one-to-many', 'oneToManyController@oneToManyLoteProcesso');
Route::get('one-to-one', 'OneToOneController@oneToOne'); Route::get('one-to-one', 'OneToOneController@oneToOne');
Route::any('agendamentos/search', 'AgendamentoController@search')->name('agendamentos.search')->middleware('auth');//->middleware('auth'); Route::any('agendamentos/search', 'AgendamentoController@search')->name('agendamentos.search')->middleware('auth');//->middleware('auth');
Route::any('titulos/search', 'TituloController@search')->name('titulos.search')->middleware('auth');//->middleware('auth'); Route::any('titulos/search', 'TituloController@search')->name('titulos.search')->middleware('auth');//->middleware('auth');
...@@ -17,7 +19,9 @@ Route::any('municipios/search', 'MunicipioController@search')->name('municipios. ...@@ -17,7 +19,9 @@ Route::any('municipios/search', 'MunicipioController@search')->name('municipios.
Route::resource('glebas', 'GlebaController')->middleware('auth'); Route::resource('glebas', 'GlebaController')->middleware('auth');
Route::any('glebas/search', 'GlebaController@search')->name('glebas.search')->middleware('auth');//->middleware('auth'); Route::any('glebas/search', 'GlebaController@search')->name('glebas.search')->middleware('auth');//->middleware('auth');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
/* Route::put('titulos/{id}', 'TituloController@destroy')->name('titulos.destroy'); //Editar um registro - put /* Route::put('titulos/{id}', 'TituloController@destroy')->name('titulos.destroy'); //Editar um registro - put
...@@ -40,6 +44,4 @@ Route::get('/', function () { ...@@ -40,6 +44,4 @@ Route::get('/', function () {
return view('welcome'); return view('welcome');
}); });
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment