VIDEO
INFO
Tutorial final de base de datos laravel4, en este último tutorial de base de datos veremos como crear la relación de muchos a muchos, teniendo como ejemplo; estudiantes y cursos, utilizando MysqlWorkbench crearemos de forma facil nuestra base de datos relacional.
Realizaremos operaciones como insertar, recuperar y eliminar registros, siendo que la actualización se realiza de forma individual a cada tabla visto en primeros tutoriales, el código fuente y la base de datos estaran disponibles debajo de este post.
CODIGO
Modelos: Curso.php
<?php
class Curso extends Eloquent
{
public $timestamps = false;
//un curso puede pertenecer a muchos usuarios, muchos a muchos con users
public function users()
{
return $this->belongsToMany("User");
}
}
User.php
public $timestamps = false;
//relación muchos a muchos entre usuarios y cursos
public function cursos()
{
return $this->belongsToMany("Curso")->withPivot('horario');
}
Rutas: routes.php
Route::get('insertar', function()
{
$user = new User;
$user->nombre = "luis";
$user->apellido = "perez";
$user->save();
$curso = new Curso;
$curso->curso = "html";
$curso->save();
});
Route::get('registrar', function()
{
$user = User::find(5);
$curso = Curso::find(1);
$user->cursos()->save($curso);
});
Route::get('ver_cursos', function(){
$user = User::find(1);
if(count($user->cursos) == 0){
echo 'El estudiante '.$user->nombre.'
no esta inscrito a ningún curso';
}else{
echo 'Estudiante: <b>'.$user->nombre.'</b><h3>
Cursos inscriptos: </h3><ul>';
foreach($user->cursos as $curso){
echo '<li>'.$curso->curso.'</li>';
}
echo '</ul>';
}
});
Route::get('registrar_otro', function()
{
//buscamos al usuario
$user = User::find(1);
//le asignamos un curso con el id del curso
$user->cursos()->attach(4);
});
Route::get('eliminar_curso', function()
{
$user = User::find(5);
$user->cursos()->detach(2);
});
Route::get('pivote', function()
{
$user = User::find(5);
foreach ($user->cursos as $hora)
{
echo $hora->pivot->horario;
}
});
Base de datos MySQLWorkBench v6:
http://www.mediafire.com/download/j336v9sz48r9pdp/modelo_muchos_a_muchos.rar
Descarga el proyecto autor (Dan Trenz )
Relacionado
Ante todo un cordial saludo desde venezuela, agradeciendo este enorme aporte que has hecho, me ha servido para iniciar en este mundo de los framework, espero saber muy pronto sobre nuevos videos de laravel deseando los mejores de los éxitos.