如何使用laravel在1个视图中显示2个表数据?

时间:2017-04-16 20:23:57

标签: php laravel

有两个表(一个是Users,第二个是Branches)。我想向Branch显示其分支管理员名称。分支管理员信息将保存在users表中。当我试图在一个视图中显示两个表的数据时出错。告诉我如何管理这个问题。

查看:

<div class="branches col-xs-12 col-sm-12 col-md-9 col-lg-9">
    <input type="text" class="pull-right form-control search" placeholder="Search">

    <div class="spaces"></div>

    <table class="table table-bordered">
        <thead>
        <tr>
            <th>
                BranchName
            </th>
            <th>
                BranchAdmin
            </th>
            <th>
                Email
            </th>
            <th>
                Contact
            </th>
            <th>
                Location
            </th>
            <th>
                Action
            </th>
        </tr>
        </thead>
        <tbody>
        @foreach($branch as $brnch)
            <tr class="branchies-row">
                <td>
                    {{$brnch->branch_name}}
                </td>
                @foreach($user as $users)
                    <td>
                        {{$users->name}}
                    </td>
                @endforeach
                <td>
                    {{$brnch->email}}
                </td>
                <td>
                    {{$brnch->contact}}
                </td>
                <td>
                    {{$brnch->address}}
                </td>


                <td>
                    <a data-id="{{$brnch->id}}" class="delete-branch">Delete</a> /
                    <a href="/branch/edit/{{$brnch->id}}">Edit </a>
                </td>
            </tr>
        @endforeach
        </tbody>
    </table>
</div>

控制器:

public function getBranchinfo(){
    $user = User::where('type', '=', 'BranchAdmin');
    $branch = Branch::all();
    return view('Branch.branchinfo')->with('branch',$branch)->with('user', $user);
}

型号:

public function branch(){
    return $this->hasOne('App\Branch', 'user_id', 'id');
}

2 个答案:

答案 0 :(得分:1)

我们可以使用查询构建器 - Join - 为此:

$branches = DB::table('Branches')
            ->join('users', 'users.id', '=', 'Branches.user_id')
            ->where('users.type', '=', 'BranchAdmin')
            ->get();

这应该可以为您提供所需的数据。

答案 1 :(得分:1)

你必须在分支模型中建立关系:

<noscript>

}

然后在刀片文件中,您获得分支管理员名称:

public function user(){
return $this->belongsTo('App\User');

@foreach($branch as $brnch) <tr class="branchies-row"> <td>{{ $brnch->user->branchadmincloumn }}</td> </tr> @endforeach 是您的用户表中保存分支管理员名称的cloumn名称。因此,将branchadmincloumn更改为您想要的列名称。 希望它有所帮助..