Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Duda con logica de la aplicación

Estas en el tema de Duda con logica de la aplicación en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola amigos espero que me puedan ayudar. Recien estoy aprendiendo Laravel y estoy realizando el Laravel Quickstar t en routes.php @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver ...
  #1 (permalink)  
Antiguo 20/07/2013, 23:09
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 1 mes
Puntos: 6
Duda con logica de la aplicación

hola amigos espero que me puedan ayudar.

Recien estoy aprendiendo Laravel y estoy realizando el Laravel Quickstart

en routes.php

Código PHP:
Ver original
  1. Route::get('users', function()
  2. {
  3.         //Obtengo el último registro insertado en la tabla users
  4.         $users = DB::select('SELECT * FROM users ORDER BY id DESC LIMIT 1');
  5.         return View::make('users')->with('users', $users);
  6. });
  7.  
  8.  
  9. Route::get('bitacora', function()
  10. {
  11.         //aca quiero obtener todos los registros de la tabla usuarios
  12.     $Consulta = User::all();   
  13.          return View::make('bitacoras')->with('bitacoras', $Consulta );
  14. });

la primera ruta funciona bien, el problema es en la segunda obtengo un error

Cita:

ErrorException

Undefined variable: Consulta

esta la vista donde no funciona
bitacoras.blade.php
Cita:
@foreach($Consulta as $user)
<p>{{ $user->id }}--{{ $user->email }}--{{ $user->name }}</p>
@endforeach
Tengo una pregunta:

-Esta bien lo que hice en routes.php ya que en este archivo estoy metiendo sql el cual debe de estar en el modelo?
  #2 (permalink)  
Antiguo 20/07/2013, 23:20
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Duda con logica de la aplicación

Acaso no sera $bitacoras en la vista en lugar de $Consulta ?, sobre el SQL, debería ir en un mapper o repositorio y en el peor de los casos si utilizas AR() en el modelo.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 21/07/2013, 01:32
 
Fecha de Ingreso: junio-2013
Ubicación: Madrid
Mensajes: 73
Antigüedad: 11 años, 4 meses
Puntos: 27
Respuesta: Duda con logica de la aplicación

A la plantilla se le pasan variables así:

Código PHP:
View::make('plantilla')->with('variable1'$valor1)->with('variable2'$valor2);

// O bien

$variables = array(
  
'variable1' => $valor1,
  
'variable2' => $valor2
);

View::make('plantilla'$variables); 
/plantilla.blade.php
Código PHP:
 {{ $variable1 }} -  {{ $variable2 }} 
http://laravel.com/docs/responses#views

Respecto a donde poner la consulta, puedes hacer lo siguiente:

/app/models/User.php

Código PHP:
    public static function lastCreated()
    {
        return 
User::orderBy('id''desc')->take(1)->get();
    } 
/app/routes.php

Código PHP:
Route::get('last-user', function()
{
    return 
User::lastCreated();
}); 
  #4 (permalink)  
Antiguo 21/07/2013, 01:44
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Duda con logica de la aplicación

En un vistazo a la documentacion vi que eloquent usa un query builder asi que en teoria puedes hacer algo como esto (pruebalo)

Código PHP:
Ver original
  1. Route::get('users', function()
  2. {
  3.         //Obtengo el último registro insertado en la tabla users
  4.         $users = DB::Table('users')->orderBy('id','desc')->find();
  5.         //$users = DB::select('SELECT * FROM users ORDER BY id DESC LIMIT 1');
  6.         return View::make('users')->with('users', $users);
  7. });
  8.  
  9.  
  10. Route::get('bitacora', function()
  11. {
  12.         //aca quiero obtener todos los registros de la tabla usuarios
  13.     $Consulta = User::all();    
  14.          return View::make('bitacoras')->with('bitacoras', $Consulta );
  15. });
Para la parte de la plantilla solo bitacoras
Código HTML:
Ver original
  1. @foreach($bitacoras as $user)
  2. <p>{{ $user->id }}--{{ $user->email }}--{{ $user->name }}</p>
  3. @endforeach
Creo que asi debe de funcionar pero apenas que lo pruebes o que alguien con mas experiencia en Laravel te ayude.
Y si esta bien lo que haces Laravel usa Closure para manejar las peticiones. Pero si lo necesitas puedes manejar un controlador tambien.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: logica, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:10.