У меня есть стол отдела. Вот имя столбца 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 и реального времени.
вы указали неправильные отношения 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