Ich habe eine N+1 -Abfrage, während ich mit meinen Modellen arbeite und mit meinen Modellen und drehst
Code: Select all
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function ingredients(): BelongsToMany
{
return $this->belongsToMany(Ingredient::class)
->using(IngredientRecipe::class)
->withTimestamps()
->withPivot(['quantity', 'unit_id']);
}
ingRedientRecipe.php (Pivot):
Code: Select all
public function unit(): BelongsTo
{
return $this->belongsTo(Unit::class);
}
ingRedient.php:
Code: Select all
public function recipes(): BelongsToMany
{
return $this->belongsToMany(Recipe::class);
}
unit.php:
Code: Select all
public function ingredient_recipes(): HasMany
{
return $this->hasMany(IngredientRecipe::class);
}
Was versuche ich zu tun:
Auf meiner Benutzerprofilseite möchte ich eine Liste von Rezepten für den Eigentümer (Benutzer) anzeigen. Jedes Rezept enthält Inhaltsstoffe () , die in Pivot -Tabelle mit Additionall -Spaltenmengen sind.
Code: Select all
public function show_profile(User $user)
{
$userRecipes = $user->recipes()->with('ingredients', 'guideSteps')->get();
return view('user.user-profile', compact('user', 'userRecipes'));
}
Problem:
Laravel weiß nicht, dass Pivot-> Unit_id mit dem Einheitsmodell zusammenhängt. Abfragen :
Wählen Sie * von Benutzern wobei Benutzer .
= 1 limit 1
Wählen Sie * aus Einheiten wobei Einheiten .
= 3 limit 1
Wählen Sie * aus Einheiten wobei Einheiten .
= 3 limit 1
... 12 More
Und ein
Problem ist an diesem Ort:
Code: Select all
@foreach($userRecipes as $recipe)
@endforeach
---------------inside component recipe-card:------------------------
@foreach($recipe->ingredients as $ingredient)
{{ $ingredient->name }}
{{ $ingredient->pivot->quantity . ' '. $ingredient->pivot->unit->name}}
@endforeach
Ich habe eine N+1 -Abfrage, während ich mit meinen Modellen arbeite und mit meinen Modellen und drehst[code] public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function ingredients(): BelongsToMany
{
return $this->belongsToMany(Ingredient::class)
->using(IngredientRecipe::class)
->withTimestamps()
->withPivot(['quantity', 'unit_id']);
}
[/code]
[b]ingRedientRecipe.php (Pivot): [/b]
[code] public function unit(): BelongsTo
{
return $this->belongsTo(Unit::class);
}
[/code]
[b]ingRedient.php:[/b]
[code] public function recipes(): BelongsToMany
{
return $this->belongsToMany(Recipe::class);
}
[/code]
[b] unit.php:[/b]
[code] public function ingredient_recipes(): HasMany
{
return $this->hasMany(IngredientRecipe::class);
}
[/code]
[b] Was versuche ich zu tun: [/b]
Auf meiner Benutzerprofilseite möchte ich eine Liste von Rezepten für den Eigentümer (Benutzer) anzeigen. Jedes Rezept enthält Inhaltsstoffe () , die in Pivot -Tabelle mit Additionall -Spaltenmengen sind.[code] public function show_profile(User $user)
{
$userRecipes = $user->recipes()->with('ingredients', 'guideSteps')->get();
return view('user.user-profile', compact('user', 'userRecipes'));
}
[/code]
[b] Problem: [/b]
Laravel weiß nicht, dass Pivot-> Unit_id mit dem Einheitsmodell zusammenhängt. Abfragen :
Wählen Sie * von Benutzern wobei Benutzer .[code]id[/code] = 1 limit 1
Wählen Sie * aus Einheiten wobei Einheiten .[code]id[/code] = 3 limit 1
Wählen Sie * aus Einheiten wobei Einheiten .[code]id[/code] = 3 limit 1
... 12 More
Und ein [url=viewtopic.php?t=20324]Problem[/url] ist an diesem Ort:
[code]
@foreach($userRecipes as $recipe)
@endforeach
---------------inside component recipe-card:------------------------
@foreach($recipe->ingredients as $ingredient)
{{ $ingredient->name }}
{{ $ingredient->pivot->quantity . ' '. $ingredient->pivot->unit->name}}
@endforeach
[/code]