Как просмотреть имя пользователя по идентификатору в Laravel?

У меня есть две таблицы для одного пользователя и другого класса. Вот моя модель user:

public function classroom()
{
    return $this->hasMany('App\classroom');
}

А вот и моя модель classroom's:

public function user()
{
    return $this->hasMany('App\User');
}

Когда пользователь создает класс, я сохраняю в таблице классов id, user_id, class_name, section. Я уже просматриваю данные класса на своей странице блейда. Но я не могу просмотреть имя пользователя, создавшего данные класса. На моей view странице

 @foreach($classrooms as $classroom)
                <li><b>Class code--><i>{{$classroom->class_code}}</i></b></li>
                <li><b>Subject--><i>{{$classroom->class_name}}</i></b></li>
                <li><b>Section--><i>{{$classroom->section}}</i></b></li>
                <li><b>created by--><i> ????  </i></b></li>
             @endforeach 

My controller

$classrooms=classroomModel::where('id',$id)->get();
$posts = Status::where('class_id' , $id)->orderBy('id', 'desc')->get();
return view::make('class',compact('posts','classrooms'));

Если я хочу просмотреть имя пользователя, для которого были созданы данные класса, то какой будет правильный код и где я должен изменить?


person Shuvo    schedule 31.08.2016    source источник


Ответы (1)


в вашем контроллере:

$classrooms=classroomModel::where('id',$id)->with('user')->first();

на ваш взгляд:

$classrooms->user->name;
person Amir Bar    schedule 31.08.2016
comment
Не работает. Теперь моя ошибка: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец «users.classroom_id» в «предложении where» (SQL: выберите * из users, где users.classroom_id в (47)) - person Shuvo; 31.08.2016
comment
где вы храните данные о том, кто создал класс? если я правильно вас понял, вы не храните эту информацию, так как вы хотите ее получить? - person Amir Bar; 01.09.2016
comment
В моей пользовательской таблице есть идентификатор первичного ключа. И идентификатор пользователя, который я поместил в свою классную таблицу с именем user_id. Теперь я показываю свою таблицу данных в классе. В таблице классов есть только user_id, но не имя. Имя находится в пользовательской таблице. Итак, как я могу просмотреть имя пользователя на моей странице просмотра. - person Shuvo; 01.09.2016
comment
так что, если в классе есть только 1 пользователь, почему вы объявляете его как hasMany users? вот где твоя проблема. вам нужно изменить его на классы пользователя hasMany, но classRoom принадлежит пользователю - person Amir Bar; 01.09.2016
comment
см. отношение один ко многим: laravel.com/docs/5.3/eloquent- отношения#один ко многим - person Amir Bar; 01.09.2016
comment
Давайте продолжим это обсуждение в чате. - person Shuvo; 01.09.2016