Pergunta

Eu li e segui a documentação encontrada aqui http://laravel.com/docs/eloquentE tentei alguns dos exemplos que encontrei aqui está o código que tenho até agora modelo

dbeloquente.php

<?php
class dbeloquent extends Eloquent {

   protected  $table = "users";


    public  function showTbl()
        {
             dd(dbeloquent::$table);
        }
}

//end of model
?>

    route.php

<?php
Route::get('/', function () {
    $model = new dbeloquent();   
    dd($model->someFunction());
});
?>

Quero mostrar minhas tabelas primeiro, mas aqui está o que estou tendo

Acesso à propriedade estática não declarada:dbeloquente::$tabela

alguém me ajude por favor

Foi útil?

Solução

Seu dbeloquente a aula está se estendendo Modelo aula em segundo plano.O alias do Eloquent está apontando para a classe Model, no app/config/app.php arquivo

'Eloquent' => 'Iluminar\Banco de Dados\Eloquent\Modelo'

tabela $ protegida propriedade é estendida do abstrato Modelo class, e não é estático, então você não pode redeclará-lo (estático ou nostático). A maneira de acessar a propriedade do modelo base é usando:

__get($key) method

Mas o problema está em qual ponto de execução seu $tabela propriedade é visível, pois é protegida e modificada em tempo de execução.

No final, não está declarado e definido para ser usado dessa forma - o Laravel está procurando internamente por essa propriedade.Tente rastrear chamadas e provavelmente descobrirá o que está acontecendo lá dentro.Não complique as coisas mais do que deveriam ser complicadas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top