我正在加入两个表(users.id = companies.user_id上的公司和用户),将数据发送到控制器,然后将其传递给视图,在那里它告诉我$ id是一个未定义的属性,引用该行在它所说的视图中($ comps-> id)。
没有联接,此消息不会显示,一切都很好。在加入时我是否必须以不同方式访问属性?
型号:
public static function companyUser(){
return DB::table('companies as c')
->leftJoin('users', 'c.user_id', '=', 'users.id')
->select('users.user_name as uname, c.*')
->get();
}
控制器:
$data['companies'] = Companies::companyUser();
return View::make('admin/companies_view', $data);
查看:
<?php if($companies) : ?>
<?php foreach($companies as $comps) : ?>
<tr>
<td class="center"><?php echo $comps->id; ?></td>
<td><?php echo $comps->company; ?></td>
<td class="center"><?php echo $comps->uname; ?></td>
<td class="center"><?php echo $comps->rate; ?></td>
<td class="center"><?php echo $comps->status; ?></td>
</tr>
<?php endforeach; ?>
<?php else : ?>
<tr>
<td colspan="8" class="no_results">There are no Users</td>
</tr>
<?php endif; ?>
答案 0 :(得分:2)
我认为错误可能是select()
期望您想要获得的每个东西作为单独的字符串。因此,如果您同时需要user_name
和c.*
,则需要执行以下操作:
->select('users.user_name as uname', 'c.*')
这应该足以让它继续下去。 :)