У меня есть система, в которой я хочу показать все проекты компании. Эта конкретная компания должна быть той компанией, в которой находится зарегистрированный пользователь. Это звучит относительно просто, но я не могу понять, как с моей текущей настройкой базы данных, потому что ни у проектов, ни у пользователя нет project_ID
, это потому, что ям с использованием промежуточной таблицы. Я построил свою структуру базы данных, как показано ниже:
- Пользователи
- Компании
- Проекты
- Project_User
При описанной выше настройке я установил все соединения с каждой моделью, кроме модели для Project_User
. Эти модели перечислены ниже.
Модель пользователя
class User extends Authenticatable
{
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function role()
{
return $this->belongsTo(Role::class, 'role_id');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function job()
{
return $this->belongsTo(Job::class, 'job_id');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function company()
{
return $this->belongsTo(Company::class, 'company_id');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function projects()
{
return $this->belongsToMany(Project::class);
}
public function isAdmin()
{
}
public function isCompanyOwner() {
if(Auth::check())
return(Auth::user()->job_id == 1);
return false;
}
}
Модель проекта
class Project extends Model
{
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function users()
{
return $this->belongsToMany(User::class);
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function company()
{
return $this->belongsTo(Company::class);
}
}
Компаниямодель
class Company extends Model
{
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function users()
{
return $this->hasMany(User::class);
}
/*
*
*/
public function projects()
{
return $this->hasMany(Project::class);
}
}
Как я могу показать все проекты компании, в которой зарегистрированный пользователь, на моем домашнем экране? С этой текущей настройкой БД?
Текущий Контроллер получает ВСЕ проекты и ни один конкретный от конкретной компании.
Контроллер
public function index()
{
$projects = Project::all();
return view('Project.show', compact('projects'));
}