Para usar las relaciones de forma correcta antes deben estar bien implementadas, esto nos permite acceder a datos escribiendo menos código. Pero cuidado.
TABLAS
Categoria |
Producto |
id nombre descripcion |
id nombre descripcion categoria_id created_at updated_at |
MODELO CATEGORÍA
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Categoria extends Model
{
use HasFactory;
public $timestamps = false;
protected $fillable = [
'nombre',
'descripcion'
];
public function producto(){
return $this->hasMany(Producto::class); // tiene muchos
}
}
MODELO PRODUCTO
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Producto extends Model
{
use HasFactory;
protected $fillable = [
'nombre',
'descripcion',
'categoria_id'
];
public function categoria(){
return $this->belongsTo(Categoria::class); //pertenece a
}
}
MOSTRAR LOS PRODUCTOS DE UNA CATEGORÍA
$categoria = Categoria::all();
foreach($categoria as $p)
echo $p->productos;
$categoria = Categoria::all(['nombre']);
foreach($categoria as $p){
echo $p->nombre."<br>";
foreach($p->producto as $x)
echo "-".$x->nombre."<br>";
}
MOSTRAR LA CATEGORÍA DE UN PRODUCTO
$producto = Producto::find(1);
dd($producto->categoria);
$producto = Producto::find(1);
//$categoria = Categoria::find($producto->categoria_id);
dd($producto->categoria->nombre);
591 visitas
© Todos los derechos reservados Codea App | Cursos de programación | 2020 - 2022