Ich erhalte diesen Fehler mit diesem CodeLaravel Error Der Versuch, Eigentum von Nicht-Objekt zu erhalten
<?php foreach(App\Campaign::all() as $campaign) { ?>
<?php
$category_id = $campaign->category->id;
$emailTemplates = App\EmailTemplate::where('category_id', $category_id);
$lastEmailNumber = $emailTemplates->latest()->first()->number;
$currentEmailNumber = $campaign->emails->last()->number;
?>
<?php for ($i = $currentEmailNumber + 1; $i < $lastEmailNumber; $i++) { ?>
<?php $pass = $emailTemplates->where("number", $i)->first()->password; ?>
<?php } ?>
<?php } ?>
Ich weiß, dass für diese Zeit $currentEmailNumber = 0
und $lastEmailNumber = 14
Das Problem von der variablen $i
auf der Leitung kommt 9 Wenn ich anstelle von $ i irgendeine Zahl zwischen 1 und 14 verwende, werden keine Fehler angezeigt. Zum Beispiel:
<?php $pass = $emailTemplates->where("number", 10)->first()->password; ?>
Aber wenn ich nur $i
angezeigt werden, ohne dass alle diesen Satz zeigt es richtig. Vielleicht ist es Problem geworfen.
Sie versuchen immer Eigentum von nicht-Objekt zu erhalten, das bedeutet, dass Sie versuchen, eine Eigenschaft von einem Objekt zu erhalten, die nicht existieren, und ich bezweifle stark, dieser Fehler von 'Meine Vermutung $ I' kommt, ist $ Kampagne der macht Error. Kannst du diese zwei posten? 'dd ($ emailTemplates-> letzte() -> erste() -> Nummer);' 'dd ($$ Kampagne-> E-Mails-> letzte() -> Nummer);' –
Es wird 14 und 0. Was komisch ist, ist dass wenn ich 1 und 14 in die Schleife lege. 'für ($ i = 0 + 1; $ i <14; $ i ++)' Es funktioniert nicht mit dem $ i auf ' Php $ pass = $ emailTemplates-> wo (" Nummer ", $ i) -> zuerst() -> Passwort; ?> Aber es funktioniert Wenn ich zum Beispiel ' Php $ pass = $ emailTemplates-> wo (" Nummer ", 14) -> erste() -> Passwort; ?> 'oder eine beliebige Zahl zwischen 1 und 14. –