Hey ich habe drei Tisch wie dieses ModellGROUPBY auf Beziehung Laravel
--table plan--
id
name
....
----table letter---
id
plan_id
....
---table person----
id
plan_id
name
.....
ich habe:
---Model plan---
class plan extends Model
{
protected $table = 'plan';
public function letter(){
return $this->hasOne('App\letter');
}
public function person(){
return $this->hasMany('App\person');
}
}
--Model person--
class person extends Model
{
public function plan(){
return $this->belongsTo('App\plan');
}
}
--Model letter--
class letter extends Model
{
public function plan(){
return $this->belongsTo('App\plan');
}
}
Und in Steuerung schreiben i-Code wie folgt aus:
$letter = letter::find($id) // $id from url parameter and it's work
return view('letter',['letter' => $letter]);
Nö in Ich möchte auf den Namen der Person aus dem Buchstabenmodell als Unterscheidungsmerkmal zugreifen, also schreibe ich Code wie diesen
{{ @foreach ($letter->plan()->person()->groupBy('name')->get) as $person }}
aber es Fehler wie folgt zurück: Call to undefined Methode Illuminate \ Database \ query \ Builder :: Person()
Wo ist mein Fehler (n)?
Außerdem ist es besser, zu eifrig Lastplan und Person '$ letter = letter :: mit ('plan.person') -> find ($ id)' + du meinst 'return view ('letter', ['persons' => $ persons]);' – Maraboc
Allright dieses Problem ist behoben, aber dort zeigen eine andere pr oblem: Syntaxfehler oder Zugriffsverletzung: 1055 'mydb.person.id' ist nicht in GROUP BY –
nah alles funktioniert jetzt gut, nur falsch konfiguriert, danke –