Laravel在视图中访问连接表

时间:2014-07-04 12:07:20

标签: join laravel

我正在加入两个表(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; ?>

1 个答案:

答案 0 :(得分:2)

我认为错误可能是select()期望您想要获得的每个东西作为单独的字符串。因此,如果您同时需要user_namec.*,则需要执行以下操作:

->select('users.user_name as uname', 'c.*')

这应该足以让它继续下去。 :)