Grüß euch,
wie so oft habe ich ein kleines Anfängerproblem wobei ich eure Hilfe brauche.
2 Tabellen, project und projectuser
In der Tabelle project wird das Projekt mit Titel und der UserID angelegt.
In der Tabelle projectusers werden weitere User angelegt die an dem Projekt arbeiten. "user_id" und die Project ID "project_id". Für jeden User eine eigene Spalte.
Soweit klappt dies auch.
Das Problem ist beim Editieren. Beim Editieren gibt er mir alle User aus, allerdings die die bereits am Projekt Arbeiten werden nicht mit checked "markiert"
Ich habe jetzt einige Tage etliche Lösungen versucht, komme aber zu keiner passenden Lösung.
model/Project.php
model/Projectuser.php
Projectcontroller.php
Project Tabelle
Projectuser Tabelle
edit.blade.php
In der foreach sollen sollen nun alle User ausgegeben werden, was ja bereits der Fall ist, zusätzlich aber alle user die an dem Project Arbeiten bereits markiert werden anhand der projectusers Tabelle.
wie so oft habe ich ein kleines Anfängerproblem wobei ich eure Hilfe brauche.
2 Tabellen, project und projectuser
In der Tabelle project wird das Projekt mit Titel und der UserID angelegt.
In der Tabelle projectusers werden weitere User angelegt die an dem Projekt arbeiten. "user_id" und die Project ID "project_id". Für jeden User eine eigene Spalte.
Soweit klappt dies auch.
Das Problem ist beim Editieren. Beim Editieren gibt er mir alle User aus, allerdings die die bereits am Projekt Arbeiten werden nicht mit checked "markiert"
Ich habe jetzt einige Tage etliche Lösungen versucht, komme aber zu keiner passenden Lösung.
model/Project.php
PHP:
public function user()
{
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function projectuser()
{
return $this->belongsTo(Projectuser::class, 'user_id', 'id');
}
model/Projectuser.php
PHP:
public function user()
{
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function project()
{
return $this->belongsTo(Project::class, 'user_id', 'id');
}
Projectcontroller.php
PHP:
public function edit($id)
{
$projects = project::findOrFail($id);
$users = User::all();
$projectuser = Projectuser::all();
return view('projects.edit', compact('projects', 'users', 'projectuser'));
}
Project Tabelle
PHP:
Schema::create('projects', function (Blueprint $table) {
$table->increments('id');
$table->unsignedBigInteger('user_id')->nullable();
$table->string('title');
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users');
Projectuser Tabelle
PHP:
Schema::create('projectusers', function (Blueprint $table) {
$table->increments('id');
$table->unsignedBigInteger('user_id');
$table->unsignedInteger('project_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('project_id')->references('id')->on('projects')->onDelete('cascade');
$table->timestamps();
});
edit.blade.php
HTML:
<select class="select2_multiple form-control" name="userteam_id[]" multiple="multiple">
@foreach($users as $user)
<option value="{{ $user->id }}">{{ $user->name }}</option>
@endforeach
</select>
In der foreach sollen sollen nun alle User ausgegeben werden, was ja bereits der Fall ist, zusätzlich aber alle user die an dem Project Arbeiten bereits markiert werden anhand der projectusers Tabelle.