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

Erro ao tentar substituir linhas sql por comandos laravel como ::all( )

Olá, boa tarde, agradeço muitíssimo quem puder ajudar desde já Como proposto o método foi chamado

<?php namespace estoque\Http\Controllers;
use DB;
use Request;
use estoque\laravel; // atenção aqui <<
class ProdutoController extends Controller{
  public function lista(){

        $laravel = laravel::all(); // aqui houve a troca do sql
        return view('produtos.listagem')->with('laravel', $laravel);
  }
  public function mostrar(){
        $id =Request::route('id');
        $produto = laravel::find($id); // aqui também
          if(empty($produto)){
            return "O produto não existe";
      }
      return view('produtos.mostrar')->with('p', $produto);    
  }

Este é o meu arquivo separado da classe:

<?php namespace estoque;

use Illuminate\Database\Eloquent\Model;

class laravel extends Model {

    //

}

E eu tenho como erro essas duas páginas:

//P1

QueryException in Connection.php line 624: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'estoque.laravels' doesn't exist (SQL: select * from laravels where laravels.id = 2 limit 1)

//P2

PDOException in Connection.php line 292: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'estoque.laravels' doesn't exist

4 respostas

O Nome da tabela no banco está no plural mesmo (laravels)? E o nome do banco é estoque?

Não, o nome do banco está correto "estoque" o nome da tabela que estou estranhando mesmo ele é "laravel" e não "laravels"

solução!

Faça assim:

<?php namespace estoque;

use Illuminate\Database\Eloquent\Model;

class laravel extends Model {

      protected $table = 'laravel';

}

Por padrão, o LARAVEL procura no banco uma tabela que tenha o nome do modelo usado no plural.

A forma de informar o nome da tabela quando não se segue o padrão é com a definição da propriedade table.

Obrigado pela ajuda Gabriel