Bom, eu segui exatamente as instruções do model, mas mesmo assim por alguma razão o código está encontrando a classe mesmo salvando na pasta app e ainda assim o meu código está igualzinho?? então aonde está erro que eu não estou vendo?
Bom, eu segui exatamente as instruções do model, mas mesmo assim por alguma razão o código está encontrando a classe mesmo salvando na pasta app e ainda assim o meu código está igualzinho?? então aonde está erro que eu não estou vendo?
Oi Bruno, tudo bom?
Compartilha com a gente sua classe Produto. Talvez seja um detalhe na declaração do namespace dela.
Aguardo retorno.
Abraço
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Produto extends Model
{
protected $table = 'produtos';
public $timestamps = false;
protected $fillable = array('nome','descricao','valor','quantidade');
protected $guarded = ['id'];
}
Eu criei essa classe pelo Model e salvei no diretório app
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Produto extends Model { protected $table = 'produtos'; public $timestamps = false;
protected $fillable = array('nome','descricao','valor','quantidade');
protected $guarded = ['id']; } Eu criei essa classe pelo Model e salvei no diretório app
Estranho, já tentou o namespace refletindo a estrutura de pastas? algo como:
<?php
namespace estoque;
use Illuminate\Database\Eloquent\Model;
class Produto extends Model
{
protected $table = 'produtos';
public $timestamps = false;
protected $fillable = array('nome','descricao','valor','quantidade');
protected $guarded = ['id'];
}
Além disso, sempre joga a linha do namespace pra baixo da declaração da tag php. as vezes o interpretador não encontra a declaração do namespace quando não damos esse espaço.
Qual versão do laravel você está utilizando? Confere pra mim no seu composer.json =)
Se você quiser, compartilha o código em algum repositorio. Assim, a gente consegue dar uma olhada na configuração do autoloader do composer pra garantir que o arquivo será encontrado.
Abraço
Opa, dando uma olhada no seu composer.json, o processo de autoload está rolando a partir da pasta "app/" com o namespace "App\":
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
}
Então para qualquer classe ser encontrada, basta estar na pasta app/diretorio com o namespace App\diretorio.
Acho que o unico ponto que pode influenciar aqui mesmo é o enter no namespace (já passei por isso algumas vezes):
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use estoque\Produto;
use Request;
class ProdutoController extends Controller {
Já tentou esse espaçamento?
Além disso, o use da classe Produto me parece incorreto.
Seguindo o padrão de autoload estabelecido, devemos usar "App\Produto" para importar a classe ao invés de "estoque\Produto":
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use App\Produto;
use Request;
class ProdutoController extends Controller {
A classe User, por exemplo, não tem nenhum ponto a acrescentar:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
}
O espaçamento e os uses parecem estar de acordo com o autoloader =)
Abraço