Hola me gustó mucho tu vídeo pero tengo una consulta se puede jalar datos de 3 o 4 tablas a una sola, de esta misma forma . Es decir tengo una tabla proyecto y de esta ocupo de una tabla que se llama categoría de otra que se llama organización pero para llegar a organización tiene que ir a involucrado Algo así Organización->involucrados->involucrados-proyecto
Como podría hacer la unión de una tabla que no tiene llave foránea directamente, es decir está relacionada por medio de otra tabla, pero quiero mostrar algunos datos de esa table
Hola Hernan, no hace falta que este creada la llave foranea, por ejemplo, Tabla A= Libro, tabla B= Autor, en Autor deberías tener como clave primaria una columna "id" y el libro una columna "autor_id", con eso es suficiente.
lamentablemente esto no funciona cuando laravel solo funciona como backend y no backend y frontend a la vez. por ejemplo si laravel está en el backend y reactjs en el frontend, esto no funciona. debido a q reactjs va a consumir endpoints proporcionados por laravel, y cuando laravel solo devuelve endpoints y no vistas, solo devuelve jsons y siguiendo este ejemplo, en ese json no se estaría devolviendo nada q no sea lo q esté especificado en el controlador.
la solución a este problema es: 1) hacer en el modelo todo tal cual se explica en el video 2) en el controlador, devolver lo siguiente: return Producto::with('categoria')->get(); // donde 'categoria' viene siendo el nombre de la función que está en el modelo y devuelve el belongsTo sin embargo, a mí personalmente me surge una gran duda: Esto no lo encontré ni en la documentación oficial, entonces siempre me he preguntado: si en la documentación oficial no está, cómo es posible q gente de a pie en este mundo haya dado con la solución, de dónde lo sacan si se supone q todo está en la documentación oficial? son cocreadores de laravel acaso? nunca me han sabido responder esa duda
Es sencillo, si te quedas con los ejemplos de la documentación tu aprendizaje será cerrado y tendrás dudas como estas. La documentación te sirve mucho pero dependerá de tus conocimientos y experiencia para buscar soluciones que la documentación no te da.
@@codigosdeprogramacion pues muy mal, toda documentación oficial debería ser absolutamente completa y no dejar nada a la interpretación o al azar. una documentación oficial debe abordar todos los casos posibles con los que dicha tecnología puede trabajar por sí sola. ahhh q seria muy extensa... pues de malas. q salgan las páginas q sean necesarias, para eso está la página de índice y uno va directo a lo que necesita
public function asignarpromas() { return $this->hasMany(asignarproma::class,'profesor_id','id'); } asignarproma.php public function index() { $userid=auth()->user()->id; $asignarpromas = DB::table('profesors') ->join('asignarpromas','asignarpromas.profesor_id','=','profesors.id') ->join('users','users.id','=','profesors.user_id') ->select('asignarpromas.*','profesors.*') ->where('profesors.user_id','=',$userid) ->asignarpromas() ->get(); return view('asignarproma.index',compact('asignarpromas')); errror BadMethodCallException Call to undefined method Illuminate\Database\Query\Builder::asignarpromas() no reconoce la funcion ->asignarpromas() ayuda favor esque quiero mostrar el nombre del profesor en el index.php @foreach ($asignarpromas as $asignarproma)
{{ $asignarproma->id }} {{ $asignarproma->profesor->nombre}} //pero no reconoce ->profesor->nombre
Hola me gustó mucho tu vídeo pero tengo una consulta se puede jalar datos de 3 o 4 tablas a una sola, de esta misma forma . Es decir tengo una tabla proyecto y de esta ocupo de una tabla que se llama categoría de otra que se llama organización pero para llegar a organización tiene que ir a involucrado
Algo así
Organización->involucrados->involucrados-proyecto
pudiste vincular todas las tablas a una sola?
@@pancracioff7945 hola si es posible con esta misma logica del video
@@ivanalvarado9670 contarle q no pude...hacer de 3 tablas. X mas q intentl y intento
Como podría hacer la unión de una tabla que no tiene llave foránea directamente, es decir está relacionada por medio de otra tabla, pero quiero mostrar algunos datos de esa table
Hola Hernan, no hace falta que este creada la llave foranea, por ejemplo, Tabla A= Libro, tabla B= Autor, en Autor deberías tener como clave primaria una columna "id" y el libro una columna "autor_id", con eso es suficiente.
@@guillermogomez9969 Gracias!
lamentablemente esto no funciona cuando laravel solo funciona como backend y no backend y frontend a la vez. por ejemplo si laravel está en el backend y reactjs en el frontend, esto no funciona. debido a q reactjs va a consumir endpoints proporcionados por laravel, y cuando laravel solo devuelve endpoints y no vistas, solo devuelve jsons y siguiendo este ejemplo, en ese json no se estaría devolviendo nada q no sea lo q esté especificado en el controlador.
la solución a este problema es:
1) hacer en el modelo todo tal cual se explica en el video
2) en el controlador, devolver lo siguiente:
return Producto::with('categoria')->get(); // donde 'categoria' viene siendo el nombre de la función que está en el modelo y devuelve el belongsTo
sin embargo, a mí personalmente me surge una gran duda:
Esto no lo encontré ni en la documentación oficial, entonces siempre me he preguntado: si en la documentación oficial no está, cómo es posible q gente de a pie en este mundo haya dado con la solución, de dónde lo sacan si se supone q todo está en la documentación oficial? son cocreadores de laravel acaso? nunca me han sabido responder esa duda
Es sencillo, si te quedas con los ejemplos de la documentación tu aprendizaje será cerrado y tendrás dudas como estas. La documentación te sirve mucho pero dependerá de tus conocimientos y experiencia para buscar soluciones que la documentación no te da.
@@codigosdeprogramacion pues muy mal, toda documentación oficial debería ser absolutamente completa y no dejar nada a la interpretación o al azar. una documentación oficial debe abordar todos los casos posibles con los que dicha tecnología puede trabajar por sí sola. ahhh q seria muy extensa... pues de malas. q salgan las páginas q sean necesarias, para eso está la página de índice y uno va directo a lo que necesita
@@codigosdeprogramacion profesor.php
protected $table = "profesors";
public function asignarpromas()
{
return $this->hasMany(asignarproma::class,'profesor_id','id');
}
asignarproma.php
public function index()
{
$userid=auth()->user()->id;
$asignarpromas = DB::table('profesors')
->join('asignarpromas','asignarpromas.profesor_id','=','profesors.id')
->join('users','users.id','=','profesors.user_id')
->select('asignarpromas.*','profesors.*')
->where('profesors.user_id','=',$userid)
->asignarpromas()
->get();
return view('asignarproma.index',compact('asignarpromas'));
errror
BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::asignarpromas()
no reconoce la funcion ->asignarpromas() ayuda favor
esque quiero mostrar el nombre del profesor en el index.php
@foreach ($asignarpromas as $asignarproma)
{{ $asignarproma->id }}
{{ $asignarproma->profesor->nombre}} //pero no reconoce ->profesor->nombre