У меня есть следующая модель для пользователей:
class User extends Authenticatable
{
use Notifiable;
protected $table = 'login_info';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function getDashboards()
{
return \DB::table('dashboard')
->select('type')
->where('id', Auth::id())
->orderBy('column', 'asc')
->get();
}
}
Пользователи имеют различную информацию во многих таблицах
- информация о пользователе, такая как имя, офис, панель мониторинга, 2FA и т. Д.
Способ, которым я делаю это сейчас "наилучшая практика" (например, функция getDashboards
) для получения информации из разных таблиц?
Или я должен создать модельдля каждой из таблиц, а затем «соединить их» (hasMany
, belongsToMany
и т. д.) для каждой из таблиц?
РЕДАКТИРОВАТЬ:
Сейчас я использую модели, но результатом запроса всегда является пустой массив.
class Dashboard extends Model
{
protected $table = 'dashboard';
public function user()
{
return $this->belongsTo(User::class,'user_id','id');
//user_id
}
}
user_id
- это идентификатор пользователя, который используется в таблице login_info.
А в классе User у меня есть:
public function dashboards()
{
return $this->hasMany(Dashboard::class,'id','user_id');
}
В контроллере входа у меня есть:
$user = \App\User::find(1);
$user->dashboards;
Кто-нибудь видит, в чем может быть проблема?
Спасибо за любую помощь!