2
Two days ago I’m banging head with a query in the database marrying tables and returning the sum of values, I can perform the query by the quiet Phpmyadmin.
Follows the query that works on Phpmyadmin:
Select sum(D.CargaHoraria) as CargaHorariaTotal, C.NomeCurso, C.CursoId, A.Imagem
             from Curso C
                  inner join Disciplina D on D.CursoId = C.CursoId
                  inner join Area A on A.AreaId = C.AreaId
             GROUP BY C.CursoId
It follows the same code on DB::select of Laravel and I can’t get back.
DB::select("        
          Select sum(D.CargaHoraria) as CargaHorariaTotal, C.NomeCurso, C.CursoId, A.Imagem
             from Curso C
                  inner join Disciplina D on D.CursoId = C.CursoId
                  inner join Area A on A.AreaId = C.AreaId
             GROUP BY C.CursoId
       ");
The intention and the following, I have Courses that each course has several disciplines, and each discipline has its hourly charge, I need to do the sum of the hourly charges of the disciplines to obtain the cargaHorariaTotal course.
But I’m not succeeding with the Laravel.
Controller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Response;
use App\CursoModel;
use DB;
class CursosController extends Controller
{
    public function __construct(CursoModel $objeto)
    {
        //No Auth
        $this->curso = $objeto;
    }
    public function CursosPosGraduacao()
    {
        return view('Cursos/CursosPosGraduacao');
    }
    public function CursosFormacaoPedagogica()
    {
        return view('Cursos/CursosFormacaoPedagogica');
    }
    public function CursosSegundaLicenciatura()
    {
        return view('Cursos/CursosSegundaLicenciatura');
    }
    public function CursoDetalhe()
    {
        return view('Cursos/CursoDetalhe');
    }
    public function retornarTodosOsCursos()
    {
        $Query = DB::select(DB::raw("        
          Select sum(D.CargaHoraria) as CargaHorariaTotal, C.NomeCurso, C.CursoId, A.Imagem
             from Curso C
                  inner join Disciplina D on D.CursoId = C.CursoId
                  inner join Area A on A.AreaId = C.AreaId
             GROUP BY C.CursoId
       "));
        return $Query;
    }
}
Route
//Matricule
Route::group(['prefix'=>'api'], function(){
    Route::group(['prefix'=>'Curso'],function(){
        Route::get('retornarTodosOsCursos',['uses'=>'CursosController@retornarTodosOsCursos']);
    });
});
Cursomodel
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
use Hash;
use Response;
use DB;
class CursoModel extends Model
{
    //
    protected $primaryKey = 'CursoId';
    protected $fillable = ['CursoId', 'AreaId', 'NomeCurso', 'DescricaoCurso', 'ImagemCurso', 'NumeroDoCurso', 'UsuarioId'];
    public $table = 'Curso';
    public function GetAllRepositorio()
    {
        return self::all();
    }
    public function PostRepositorio()
    {
        if (Auth::check()) { //verifica se tem usuario logado
            $data = new CursoModel();
            $data->fill(Input::all());
            if (is_null($data)) {
                return false;
            }
            //Confere se CursoId e maior que 0
            if ($data["CursoId"] > 0) {
                //Envia o registro para Atualizar ja que o mesmo tem CursoId
                $data = $this->AtualizaRegistro($data["CursoId"]);
                //Se salvar retorna true se não retorna falso
                return $data;
            }
            $TodosOsCursos = self::all();
            foreach ($TodosOsCursos as $key => $value) {
                if ($value['NumeroDoCurso'] == $data['NumeroDoCurso'] || $value['NomeCurso'] == $data['NomeCurso']) {
                    return false;
                }
            }
            $data['UsuarioId'] = Auth::user()->id;
            return $data->save();
        }
    }
    public function DeletarRepositorio($id)
    {
        $data = self::find($id);
        if (is_null($data)) {
            return false;
        }
        $data->delete();
        return true;
    }
    public function AtualizaRegistro($CursoId)
    {
        if (Auth::check()) { //verifica se tem usuario logado
            //Procura registro no banco pelo $id
            $data = self::find($CursoId);
            //Caso não encontrar registro no banco retorna falso, abortando a operação
            if (is_null($data)) {
                return false;
            }
            //Recebe todos os valores novos que chegaram
            $input = Input::all();
            //Atribui os valores novos no registro 'data' encontrados no banco
            $data->fill($input);
            //Atribui o usuario que executou a ultima ação no registro
            $data['UsuarioId'] = Auth::user()->id;
            //Salva os registros no banco e retorna se atalizou ou não
            return $data->save();
        }
    }
    public function RetornaListaDeCursoPorArea($AreaId){
        $listaDeCursoPorArea = DB::table('Curso')->where('AreaId', $AreaId)->get();
        return $listaDeCursoPorArea;
    }
}
If you put a
dd('Teste')above the variable$Queryand enters the LINK does not show 'Test' ?– Diego Souza