Salve. No capitulo 5 da segunda da parte do curso de Laravel é encarado realcionamentos entre models. Li a doc de laravel varias vezes e não estou encontrando o erro tonto, mas ele persiste. Estou acreditando que trata-se de alguma convençao interna do core para nomear colunas da tabela. Com php puro ou CodeIgniter não tinha estes beneficios, mas também nao tinha estes problemas, salve CodeIgniter.
Voltando ao Problema. o banco estoque tem - a tabela categorias (id,nome, timestamps) - a tabela produto (* campos, categoria_id)
Meu sistema, conforme os excerciços deveria conseguir puxar na view
<td> {{ $p->categoria->nome}}</td>
gracas ao relacionamento.
Em lugar disso o framework de banco nao consegue relacionar ambos campos.
segue todas as telas, se alguem ja passou por isto ... me de um help
<?php namespace estoque;
use Illuminate\Database\Eloquent\Model;
class Produto extends Model {
//protected $table = 'produtos';
public $timestamps = false;
protected $fillable= array('nome','categoria_id','valor','descricao','quantidade','tamanho');
public function categoria(){
return $this->belongsTo('estoque\Categoria');
}
}
<?php namespace estoque;
use Illuminate\Database\Eloquent\Model;
class Categoria extends Model {
public $timestamps = false;
protected $fillable= array('nome');
public function produtos(){
return $this->hasMany('estoque\Produto');
}
}
na view
@foreach($produtos as $p)
<tr class="{{ $p->quantidade <=1 ? 'danger' : '' }}">
<td> {{ $p->nome }}</td>
<td> {{ $p->categoria->nome}}</td>
<td> {{ $p->valor }}</td>
<td> {{ $p->descricao }}</td>
<td> {{ $p->quantidade }}</td>
<td> {{ $p->tamanho }}</td>
<td>
<a href="/produtos/mostra/{{$p->id}}">
<i class="material-icons">delete</i>
</a>
</td>
<td>
<a href="/produtos/remove/{{$p->id}}">
<i class="material-icons">visibility</i>
</a>
</td>
</tr>
@endforeach
tabela categorias campos (id, nome)
tabela produtos campos (id,nome, categoria_id,valor, descricao,quantidade,tamanho)