【问题标题】:Laravel accessing joined table in viewLaravel 访问视图中的连接表
【发布时间】:2014-07-04 21:23:51
【问题描述】:

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

【问题讨论】:

    标签: join laravel


    【解决方案1】:

    我认为错误可能是select() 期望您想要获得的每一件事都作为一个单独的字符串。所以如果你想要user_namec.*,你需要这样做:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      相关资源
      最近更新 更多