2015-11-30 2 views
0

У меня возникли проблемы при доступе к данным, которые связаны с более чем одной таблицы, вот мой код:Laravel Доступ к нескольким таблицам

<table class="table table-striped"> 
    <thead> 
     <th>Ejercicio</th> 
     <th>Unidad</th> 
     <th>Descripcion</th> 
     <th>Tipo actividad</th> 
     <th>Operaciones</th> 
    </thead> 
    @foreach($exercises as $exercise) 
    <tbody> 
     <td>{{$exercise->name}}</td> 
     <td>{{$exercise->unit}}</td> 
     <td>{{$exercise->description}}</td> 
     <td>{{$exercise->activity_id}}</td> 
     <td> 
      <?php echo link_to('exercise/edit/'.$exercise->id, $title = 'Editar', $attributes = array('class' => 'btn btn-primary'), $secure = null); ?>     
     </td> 
    </tbody> 
    @endforeach 
</table 

на линии <td>{{$exercise->activity_id}}</td> это только внешний ключ для другой таблицы named activity_type, который имеет идентификатор и имя, поэтому я хотел бы показать это имя с этим идентификатором.

Как я могу это сделать?

ответ

1

Сначала написать отношение на вашей базе model.Here я приведу вам пример относится к соотношению

public function ActivityRelation() 
{ 
    return $this->belongsTo('App\ActivityType', 'id', 'activity_id'); 
} 

Затем вы можете использовать как этот

{{$exercise->ActivityRelation->name}} 
+0

возвращение $ this-> belongsTo ('App \ ActivityType', 'activity_id', 'идентификатор'); 'foreign_key' - второй параметр. –

+0

Спасибо! это сделало решение – user3557451

+0

, если это решение в порядке, тогда сделайте это как принятый ответ, который будет полезен для других, которые уже сталкиваются с этой проблемой –

0

Вы должны строить отношения в вашей модели ,

В вашем Exercise.php

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Exercise extends Model 
{ 
    public function activity_type() 
    { 
     return $this->belongsTo('App\ActivityType','activity_type'); 
    } 
} 

И в вашем ActivityType.php, это на самом деле не нужны в вашем случае, но если вы хотите, чтобы получить обратную связь.

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class ActivityType extends Model 
{ 
    public function exercises() 
    { 
     return $this->hasMany('App\Exercise'); 
    } 
} 

После этого вы можете получить доступ к свойствам активность таким образом:

<td>{{$exercise->activity_type->name}}</td> 
Смежные вопросы