Laravel 7: вызов данных с пользовательским внешним ключом показывает ошибку

У меня есть стол отдела. Вот имя столбца created_by. Он хранит идентификатор из таблицы пользователей. Я хочу вызвать имя пользователя из идентификатора столбца created_by. Но выдает ошибку Column not found: 1054 Unknown column 'users.department_id' in 'where clause'

Модель отдела:

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

Модель пользователя:

 public function department(){
    return $this->belongsTo(Department::class, 'created_by');
}

Контроллер:

 public function index(){
    $departments = Department::where('deletion_status', 0)->orderBy('department', 'asc')->get();
    return view('admin.department_manage', compact('departments'));
}

Файл лезвия:

   @foreach($departments as $row)
       <tr>
          <td>{{ $loop->iteration }}</td>
          <td>{{ $row->user->name }}</td>
       </tr>
   @endforeach

Может ли кто-нибудь помочь мне найти решения?

🤔 А знаете ли вы, что...
Laravel включает в себя механизмы для работы с WebSocket и реального времени.


16
1

Ответ:

Решено

вы указали неправильные отношения laravel. сделайте это: для модели пользователя departments() { return $this-> hasMany(Department::class, 'created_by')} Затем для модели отдела: user(){return $this->belongsTo(User::class, ' created_by', 'id')}. Вызов будет таким: departments= Department::where('deletion_status', 0)->with('user')->get() Каждый элемент в коллекции отделов будет иметь информацию о пользователе. , который можно получить например вот так department -> user->name