Ich habe 4 Tabellen.Eloquent Beziehung mit DB Laravel
Clients Jobs Runden Job_Rounds
Ich habe folgende Beziehungen erstellt:
Clients > Jobs
Jobs > Rounds
Hier sind meine Modelle
Kunde
class Client extends Model
{
protected $dates = [
'created_at',
'updated_at',
'last_done'
];
public function Jobs()
{
return $this->hasMany('App\Job','client_id');
}
}
Job
class Job extends Model
{
protected $dates = [
'created_at',
'updated_at',
'last_done',
'due_date'
];
public function Round()
{
return $this->belongsTo('App\Round','round_id');
}
public function Client()
{
return $this->belongsTo('App\Client','client_id');
}
}
Runde
class Round extends Model
{
protected $dates = [
'created_at',
'updated_at',
'date_scheduled',
'date_finished'
];
public function Clients()
{
return $this->hasMany('App\RoundClients', 'round_id');
}
public function Jobs()
{
return $this->belongsToMany('App\Job', 'job_rounds', 'round_id', 'job_id');
}
}
JobRound
class JobRound extends Model
{
public $timestamps = false;
}
Auf meinem Rundblick ich alle Jobs nicht in der Runde bin ausgeben und all Jobs in der Runde.
ich das tue, indem ein DB :: Tabelle erstellen, die Prüfung durchzuführen - meinen Code sehen:
public function show($id)
{
$round = Auth::user()->rounds()->FindOrFail($id);
$not = DB::table('jobs')->whereNotIn('id', function($query) use($round) {
$query->select('job_id')
->from('job_rounds')
->where('round_id', $round->id);
})->get();
$are = DB::table('job_rounds')
->join('jobs', 'job_rounds.job_id', '=', 'jobs.id')
->select('job_rounds.*', 'jobs.*' ,'job_rounds.id as DAS')
->where('job_rounds.round_id',$round->id)
->get();
return view('app.round',compact('round','not','are'));
}
Das Problem, das ich habe in meiner Ansicht ist, die Client-Job Beziehung für den Client ausgeben Name wird nicht funktionieren, wie ich meine eigene DB-Abfrage erstellt haben, ich bin Ausgabe der Client-Informationen auf meiner Ansicht wie
Jobs auf dem runden
@foreach($are as $job)
{{ $job->client->first_name }}
@endforeach
Jobs nicht auf dem runden
@foreach($not as $job)
{{ $job->client->first_name }}
@endforeach
bekomme ich den Fehler:
Variable $client not found etc
haben Sie die Beziehung auf den Modellen definiert? Können Sie die Modelldateien für jede – Carlos
@Carlos posten Ich bin nicht vertraut damit, es in der Beziehung zu tun, ich habe die oben genannten Modelle enthalten. –
Warum nicht grundlegende Beziehungen auf Datenbankebene verwenden? – Sachith