Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

Class App\Services\....... does not exis

Professor me tira uma duvida por gentileza, estou com essa mensagem quando vou fazer vou adicionar um novo objeto na tabela.

Já revi no Controller e a classe está sendo importada com use.. pior q não quando aparece o erro ele não me fala onde está faltando importar a classe.. apenas fala que a classe não existe.

Me ajuda ai por favor

11 respostas

Fala, Ivanaldo. Preciso ver seu código e a mensagem de erro completa pra te ajudar.

:-)

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Locutor;
use App\Http\Requests\LocutoresFormRequest;
use App\Services\CriadorDeLocutor;
use \Illuminate\Support\Facades\DB;

class LocutoresController extends Controller{

    public function index(Request $request){
        $locutores = Locutor::query()->orderBy('nome')->get();

        return view('locutores.index',compact('locutores'));
    }
    public function create(){


            return view('locutores.create');

        }
       public function store(LocutoresFormRequest $request,CriadorDeLocutor $criadorDeLocutor){

            $locutor = $criadorDeLocutor->criarLocutor(
                $request->nomeArtistico,
                $request->nomeLocutor,
                $request->descricao,
                $request->email);




        return redirect()->route('listar_locutores');
        }    


}
ReflectionException
Class App\Services\CriadorDeLocutor does not exist

LEMBRANDO QUE ESTOU USANDO MYSQL

Fala, Ivanaldo.

Sempre coloca seu código entre 3 crases (`), assim ele formata melhor. Já editei sua dúvida pra ficar assim.

Como e onde a classe CriadorDeLocutor está definida?

certo, dentro da pasta Services, foi criado um arquivo chamado CriadorDeLocutor com essas informações

<?php


namespace App\Services;
use App\Locutor;
use \Illuminate\Support\Facades\DB;


/**
 * 
 */
class CriadorDeLocutor{
    public function criarLocutor(
        string $nomeArtistico,
        String $nomeLocutor,
        String $descricao,
        String $email        
    ) : Locutor
    {
        $locutor = null;
        DB::beginTransaction();
        $locutor = Locutor::create(['nomeArtistico' => $nomeArtistico]),['nomeLocutor' => $nomeLocutor],['descricao' => $descricao],['email'=>$email] ;

        DB::commit();


        return $locutor;

    }

}

Parece estar tudo certinho. Executa o comando composer dump-autoload e vê se resolve.

Se não, executa um composer update.

Em último caso, se nada disso funcionar, disponibiliza seu código no GitHubp pra eu dar uma olhada, pode ser?

Fico no aguardo.

Professor, não estou conseguindo criar uma pasta publica no meu git.. por favor me manda seu usuário para eu colocar em exerção.

Obrigado

https://github.com/naldown/oam-admin

Ivanaldo, não entendi o que você quis dizer.

Os comando sugeridos não surtiram efeito?

Não professor, rodei os comandos que você me pediu e ainda continua com o mesmo erro.

Acima mencionei que meu projeto no Git está como modo privado e pedi o seu e-mail para colocar na lista para ter acesso ao projeto.. para que vc possa da uma olhada

Professor.. tem um detalhe.. nesse meu projeto eu não criei a tabela.. ela já existia, eu apenas estou fazendo insert.. tem algum procedimento diferente que tenho que fazer em questão das migrations?

ou para inserir seria com DB::select ?

Opa, Ivanaldo.

É que Git e GitHub são coisas bem diferentes. Pela sua mensagem, acho que você está se referindo ao GitHub, e não ao Git.

Meu usuário do GitHub: cviniciussdias

O método select da classe DB é para recuperar dados, e não para inserir, Ivanaldo. Isso não tem relação com o erro que você está recebendo não.

solução!

Desculpa professor, me expressei mal.. era DB::insert.. Já conseguir resolver professor! foi uma ')' que estava faltando.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software