2016-09-29 2 views
0

Я пытаюсь отобразить объект для моего ученика на основе атрибута «stn» в таблице учеников. Я смог отобразить его, когда я использовал первичный ключ, но при использовании атрибута функция ничего не возвращает, когда она использовалась для возврата объекта.Laravel Как показать строку, передав атрибут в моей модели

@foreach($users as $user) 

    @foreach($user->contactlogs as $logs) 

     {{ $logs->students }} 

    @endforeach 

@endforeach 

Это используется для отображения объекта студента, теперь речь идет ни с чем, это мои модели

class ContactLog extends Model 
{ 

    protected $table = 'contactlogs'; 

    public function users() 
    { 
     return $this->belongsTo(User::class, 'id'); 
    } 
    public function students() 
    { 
     return $this->belongsTo(Student::Class); 
    } 

} 

class Student extends Model 
{ 

    protected $table = 'students'; 

    public function user() 
    { 
     return $this->belongsTo(User::class); 
    } 

    public function contactlogs() 
    { 
     return $this->hasMany(ContactLog::class); 
    } 

} 

ответ

0

Я был в состоянии отобразить информацию следующим образом

$student = Student::where('stn', '=', $request->stn)->first(); 

    $log->student_id = $student->id; 

где он работает arch для stn и возвращает первое совпадение, они уникальны, поэтому они должны работать, тогда он хранит идентификатор, и в представлении я могу просто отображать STN вместо ID

0

Ну в вашем контроллере вы должны иметь что-то вроде этого:

public function yourAction(){ 
    $users = ContactLog::with('users', 'students')->get(); 
    return view('your.view' , compact('users')); 
} 

Тогда, на ваш взгляд, вы должны сделать это:

@foreach($users as $user) 
{{ $user->users->name }} 
{{ $user->students->name }} 
@endforeach 

И вы можете сделать то же самое для студентов тоже:

public function yourAction(){ 
    $students = Student::with('users', 'contactlogs')->get(); 
     return view('your.view' , compact('students')); 
} 

то же самое для вашего зрения

@foreach($students as $student) 
    {{ $student->users->attr }} //attr is the attribute from users 
    {{ $student->contactlogs->attr }}// attr is the attribute from contaclogs 
@endforeach 
+0

Спасибо, что нашли время, чтобы помочь, я ценю это! – gxrobb

0

Попробуйте связаться с() вместо contactlogs

@foreach ($ пользователей как $ пользователю)

@foreach($user->contactlogs() as $logs) 

    {{ $logs->students }} 

@endforeach 

@endforeach

Смежные вопросы