2017-05-28 3 views
0

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.

+0

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);' –

+0

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 ' wo (" Nummer ", $ i) -> zuerst() -> Passwort; ?> Aber es funktioniert Wenn ich zum Beispiel ' wo (" Nummer ", 14) -> erste() -> Passwort; ?> 'oder eine beliebige Zahl zwischen 1 und 14. –

Antwort

0

GELÖST:

dies geändert:

<?php $pass = $emailTemplates->where("number", $i)->first()->password; ?> 

Dazu:

<?php $pass = App\EmailTemplate::where('category_id', $category_id)->where("number", $i)->first()->password; ?> 

Ich weiß nicht, warum althought.

Verwandte Themen