6
respostas

Não está retornando o valor falso ou true do banco de dados

Fala galera, alguém pode ajudar a resolver, estou trabalhando com boolean só que quando vou listar o dados ele não traz o valor falso no banco de dados

Ele deveria exibir dessa maneira

Operando: false ou true Data: ta funcionando normalmente

Segue o Código

----- Controller ------

public function listaLicencaMensal(Request $request){

        $input = $request->all();

        //busca usuario
        $usuario = $request->user(); //usuario logado

        $buscardata = date('m');
        $licencas = Licenca::select('operando','created_at') // seleciona os campos da tabela e depois joga na tela
                    ->get()
                    ->groupBy(function($date) {

                        return Carbon::parse($date->created_at)->format('m'); // exibir  grupo por mes    
                    });

        return $licencas;
    }

TDD

public function testTotalLicencaAnual()
    {
        $this->assertTrue(true);

        $dadosUsuario = [
            'email' => 'ana@mail.com',
            'password' => '123456'
        ];
        $response = $this->post('/api/login', $dadosUsuario);
        $usuarioLogado = json_decode($response->content());
        $token = $usuarioLogado->result->usuario->token;
        $acessoToken = ['Authorization' => 'Bearer '.$token];

        //$totalLicenca::count();

        $response = $this->withHeaders($acessoToken)
                                ->get('/api/relatorio/Mensal-Licenca');
        $totalLicenca = json_decode($response->content());    

        print_r($totalLicenca);

        $response->assertSuccessful();  

    }
6 respostas

Resultado

 [2018] => Array
        (
            [0] => stdClass Object
                (
                    [operando] =>
                    [created_at] => 2018-10-24 09:30:41
                )

            [1] => stdClass Object
                (
                    [operando] =>
                    [created_at] => 2018-10-24 09:30:41
                )

        )

)
.                              36 / 36 (100%)

Tente imprimir usando o var_dump($obj) ao invés de print_r($obj).

Se não me engano o print_r() não imprime nada se o valor for NULL.

Funcionou, sabe como eu poderia separar quem é true e false ?

Não sei exatamente como você gostaria de fazer essa separação, mas uma forma de fazer seria:

Função que separa quem é true de quem é false

public function separaTrueEFalse($totalLicenca) {

    $licencasTrue = array();
    $licencasFalse = array();

    foreach($totalLicenca as $licenca) {
        if($licenca->operando == true) {
            $licencasTrue[] = $licenca;
        }
        else {
            $licencasFalse[] = $licenca;
        }
    }

    // reune todas as licenças separadas em índices diferentes "ltrue" e "lfalse"
    $licencasSeparadas = array("ltrue" => $licencasTrue, "lfalse" => $licencasFalse);
    return $licencasSeparadas;
}

public function testTotalLicencaAnual()
    {
        $this->assertTrue(true);

        $dadosUsuario = [
            'email' => 'ana@mail.com',
            'password' => '123456'
        ];
        $response = $this->post('/api/login', $dadosUsuario);
        $usuarioLogado = json_decode($response->content());
        $token = $usuarioLogado->result->usuario->token;
        $acessoToken = ['Authorization' => 'Bearer '.$token];

        //$totalLicenca::count();

        $response = $this->withHeaders($acessoToken)
                                ->get('/api/relatorio/Mensal-Licenca');
        $totalLicenca = json_decode($response->content());    

    $totalLicenca = separaTrueEFalse($totalLicenca);

        print_r($totalLicenca);

        $response->assertSuccessful();  

    }

Esse exemplo que usou não deu certo aqui aparece esse erro

Too few arguments to function App\Http\Controllers\API\RelatorioController::listarOperandoTrue(), 1 passed and exactly 2 expected

O operando seria praticamente uma lista que o administrador vai ver quem foi aceito e reprovado só que em uma lista separados ( igual controle de entrada e saída)

Eu fiz assim por enquanto hahah eu sei que é errado fazer separado em 2 function

public function listarOperandoFalse(Request $request){
        $input = $request->all();
        $usuario = $request->user();

        $licencas = Licenca::where('operando', 'false')
                    ->get();
        return $licencas;
    }

    public function listarOperandoTrue(Request $request){
        $input = $request->all();
        $usuario = $request->user();

        $licencas = Licenca::where('operando', 'true')
                    ->get();
        return $licencas;
    }

Outra Opção

public function listarOperandoTrue-False(Request $request){
        $input = $request->all();
        $usuario = $request->user();

      $licencas = Licenca::where('operando',false)->orWhere('operando', true)->get(['operando']); 

            return $licencas;
    }