Jeff Davidson
Jeff Davidson

Reputation: 1929

"trying to get property of non object" exception?

I'm trying to figure out I keept getting "trying to get property of non object in my view file. It says its an object in the print r function I ran on the $messages variable but yet it still says that error message.

Array ( 
[0] => stdClass Object ( 
    [id] => 1 [subject] => Testing Message 1 
    [firstName] => Jeffrey 
    [lastName] => Davidson 
    [dateSent] => April 1st, 2012 
    [messageRead] => 0 )
[1] => stdClass Object ( 
    [id] => 1 [subject] => Testing Message 1 
    [firstName] => Jeffrey 
    [lastName] => Davidson 
    [dateSent] => April 1st, 2012 
    [messageRead] => 0 ) ) 


<?php if (!is_null($messages[0])) { 
                    foreach ($messages[0] AS $message) { 
                        echo '<tr>'; echo '<td style="text-align: center">'; switch ($message->
                    messageRead) { case 0: echo '
                    <img src='.base_url().'assets/img/icons/packs/fugue/16x16/mail.png />
                    '; break; case 1: echo '
                    <img src='.base_url().'assets/img/icons/packs/fugue/16x16/mail-open.png />
                    '; break; case 2: echo '
                    <img src='.base_url().'assets/img/icons/packs/fugue/16x16/mail-reply.png />
                    '; break; case 3: echo '
                    <img src='.base_url().'assets/img/icons/packs/fugue/16x16/mail-forward.png />
                    '; break; } echo '
                    </td>
                    '; echo '
                    <td>
                        '.$message->dateSent.'
                    </td>
                    '; echo '
                    <td>
                        <a href='.base_url().'pmsystem/viewmessage/ '.$message->id.'>'.$message->subject.'</a>
                    </td>
                    '; echo '
                    <td>
                        '.$message->firstName.' '.$message->lastName.'
                    </td>
                    '; echo '
                    <td style="text-align: center">
                        '; $data = array('name' => 'message_id', 'class' => 'messages', 'value' => $message->id); echo form_checkbox($data); echo '
                    </td>
                    '; echo '
                    </tr>
                    '; } } ?>

Upvotes: 0

Views: 2051

Answers (2)

david
david

Reputation: 33507

if (is_array($messages)) {
  foreach ($messages as $message) {
    echo $message->id . "\n";
  }
}

Upvotes: 0

QuantumBlack
QuantumBlack

Reputation: 1546

Assuming $messages is the array of objects, you need to run the foreach on the $messages variable, not on the object in the first index ($messages[0])

<?php
if (!is_null($messages))
{ 
   foreach ($messages AS $message)

Upvotes: 4

Related Questions