Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2013, 15:56
muydirecto
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta Laravel: Eloquent, problema sacando datos de tablas relacionadas

Hola, soy nuevo en el foro. Estoy aprendiendo PHP + Laravel.
Tengo un problema al sacar datos de la base de datos. Lo que quiero hacer es sacar la lista completa de la base de datos, y filtrarla con eloquent.

Código PHP:
//UsersController.php
<?php

class UsersController extends BaseController {

    public function 
index()
    {
        if (
Auth::user() && Auth::user()->role == 'customer') {
            
$downloads Download::all();
            
            return 
View::make('downloads.index')->with('downloads'$downloads);
        }
        return 
View::make('login');
    }
Código PHP:
//Add.php
<?php

class Add extends Eloquent {
    protected 
$guarded = array();

    public static 
$rules = array();

    public function 
download(){
        return 
$this->belongsTo('Download');
    }
}
Código PHP:
//Download.php
<?php

class Download extends Eloquent {
    protected 
$guarded = array();

    public static 
$rules = array();

    public function 
adds(){
        return 
$this->hasMany('Add''user_id''did_id''created_at''updated_at');
    }
}
Aquí es donde no sé como sacar con un foreach los datos:
Código PHP:
//index.blade.php

@extends('master')
@section('content')
    @if(Auth::check())
        <?php     /*
                $download->adds()->first()->did_id
                $download->did == Add::where('did_id', '=', $download->did)->lists('did_id')[0]
                */
        
?>

        <?php $newdatetime = new DateTime(); ?>
        <?php echo "<p>".$newdatetime->format('Y-m-d H:i:s')."<p>"?>
        @foreach($downloads as $download)

            //en este if también quiero hacer algo como
            //$download->adds()->first()->created_at > $newdatetime->format('Y-m-d H:i:s')
            //$download->adds()->first()->updated_at < $newdatetime->format('Y-m-d H:i:s')
            //ya que quisiera colocar un límite de descarga de 2 semanas

            //devuelve "Trying to get property of non-object"
            @if($download->did == $download->adds()->first()->did_id)
            {{ $download->did }}    Descarga <br>
            @else
            {{ $download->did }}    NO Descarga <br>
            @endif
        @endforeach
    @endif
    <hr>
@stop
Habrá otra manera de hacer esto? en el modelo? controlador?
Espero puedan ayudarme, gracias a todos.