2017-05-28 13 views
0

のプロパティを取得しようとすると、私は私が今回のために$currentEmailNumber = 0$lastEmailNumber = 14 問題は、9行目で変数$iから来ていることを知って、このコードLaravel ErrorException非オブジェクト

<?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 } ?> 

でこのエラーを取得しています$ iを使用する代わりに、1から14までの任意の数字を使用すると、エラーは発生しません。例:

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

$iと表示されている場合、その文章はすべて正しく表示されます。 それはキャストの問題かもしれません。

+0

あなたは存在しないオブジェクトからプロパティを取得しようとしていることを意味する非オブジェクトのプロパティを取得しようとしています。このエラーは '$ i'から来るのではないでしょうか? 私の推測は$ campaignですエラー。あなたはこれら2つを投稿できますか? 'dd($$ campaign-> emails-> last() - > number); ' –

+0

14と0を取得します。奇妙なのは、ループに1と14を入れればそれです。 '($ i = 0 + 1; $ i <14; $ i ++)' '<?php $ pass = $ emailTemplates->(" number "、$ i)の$ iでは動作しません - > first() - > password; ?> 'しかし、それはうまくいきます。たとえば、' <?php $ pass = $ emailTemplates->ここで( "number"、14) - > first() - > password; ?> 'または1〜14の任意の数。 –

答えて

0

は解決:なぜalthought私にはわからない

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

:このため

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

はこれを変更しました。

関連する問題