-
-
Save wilcorrea/7e68083433cd0060dacd40c3de57c5ce to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers; | |
use Illuminate\Http\Request; | |
use Illuminate\Http\UploadedFile; | |
use Illuminate\Support\Facades\Input; | |
use App\Estabelecimento; | |
trait TrairConfigController{ | |
public function Index(Request $request){ | |
// limit de quantos intens sera exibido, por padarão so sera exibido 20 | |
$limit = $request->all()['limit'] ?? 5000; | |
// Ordem com qual os item sera exibido | |
$order = $request->all()['order'] ?? null; | |
// Busca dado especifico no banco de dados | |
$like = $request->all()['like'] ?? null; | |
// Fintra dados | |
$where = $this->where ?? []; | |
// Verificando se $order é diferente de nulo | |
if($order !== null){ | |
// Tranformando $order em um array | |
$order = explode(",",$order); | |
} | |
// Defininando valores por padrão no order | |
$order[0] = $order[0] ?? 'id'; | |
$order[1] = $order[1] ?? 'asc'; | |
// Se existir like | |
if ($like) { | |
// Tranformando $like em um array | |
$like = explode(',', $like); | |
// Colocando o segundo valor em aspas | |
$like[1] = '%' . $like[1] . '%'; | |
} | |
// Fazendo a consulta no banco de dados | |
$result = $this->model::orderBy($order[0],$order[1]) | |
->where(function($query) use ($like){ | |
if($like){ | |
return $query->where($like[0],'like',$like[1]); | |
} | |
return $query; | |
}) | |
->where($where) | |
// Passando os relacionamento de model, para trazer os dados do relacionamento | |
->with($this->relationship()) | |
->paginate($limit); | |
return $result; | |
} | |
public function Store(Request $request){ | |
// Passando todos os dados da requisição para data | |
$data = $request->all(); | |
// Realizando o cadastro no banco de dados | |
$result = $this->model::create($data); | |
if(sizeof($request->forma_pagamento) > 0){ | |
$config = $this->model::where('estabelecimento_id', $request->estabelecimento_id)->first(); | |
$config->formPayment()->attach($request->forma_pagamento); | |
} | |
if(sizeof($request->bandeiras_cartao) > 0){ | |
$config = $this->model::where('estabelecimento_id', $request->estabelecimento_id)->first(); | |
$config->flagsAccept()->attach($request->bandeiras_cartao); | |
} | |
if(sizeof($request->bairros_cidade) > 0){ | |
$config = $this->model::where('estabelecimento_id', $request->estabelecimento_id)->first(); | |
$config->districtStreet()->attach($request->bairros_cidade); | |
} | |
return response()->json($result); | |
// return redirect()->route('painel_views.estabelecimento'); | |
} | |
public function Show($id){ | |
// Verificando se o id existe no banco de dados, caso exista retornara o Produto onde esta o id | |
$result = $this->model->with($this->relationship())->findOrFail($id); | |
return response()->json($result); | |
} | |
public function Destroy($id){ | |
// Se existir o id no banco de dados o produto onde esta o id sera apagado | |
$result = $this->model::findOrFail($id)->delete(); | |
return response()->json($result); | |
} | |
public function Update(Request $request , $id){ | |
// Passando todos os dados da requisição para data | |
$data = $request->all(); | |
// Atualizando os dados do banco de dados | |
$result = $this->model::findOrFail($id)->update($data); | |
if(sizeof($request->forma_pagamento) > 0){ | |
$config = $this->model::findOrFail($id); | |
$config->formPayment()->detach(); | |
$config->formPayment()->attach($request->forma_pagamento); | |
} | |
if(sizeof($request->bandeiras_cartao) > 0){ | |
$config = $this->model::findOrFail($id); | |
$config->flagsAccept()->detach(); | |
$config->flagsAccept()->attach($request->bandeiras_cartao); | |
} | |
if(sizeof($request->bairros_cidade) > 0){ | |
$config = $this->model::findOrFail($id); | |
$config->districtStreet()->detach(); | |
$config->districtStreet()->attach($request->bairros_cidade); | |
} | |
return response()->json($data); | |
// return redirect()->route('painel_views.estabelecimento'); | |
} | |
public function relationship(){ | |
if(isset($this->relationship)){ | |
return $this->relationship; | |
} | |
return []; | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment