【问题标题】:How to join two tables in Laravel如何在 Laravel 中连接两个表
【发布时间】:2019-12-23 09:14:12
【问题描述】:

我正在尝试加入两个不同的表,以便在我的 index.blade 文件中的 foreach 循环中显示

我的控制器:

public function index()
    {
        $users = DB::table('accounts')
            ->join('users', 'accounts.user_id', '=', 'users.id')
            ->select('users.accno', 'accounts.*')
            ->first();

        return view('accounts.index', compact('users'));
    }

我的刀片:

 @foreach($users as $user)
       <tr>
          <td>{{ $user->accno }}</td>
          <td>{{ $user->balance }}</td>
          <td>{{ $user->amt }}</td>
       </tr>
 @endforeach

我在其中实现控制器的 index.blade.php,{{user-&gt;accno}} 来自我的用户表,其余来自帐户表

【问题讨论】:

  • 那么这里的问题似乎是什么?

标签: php laravel join


【解决方案1】:
 $users = DB::table('accounts')
        ->join('users', 'accounts.user_id', '=', 'users.id')
        ->select('users.accno', 'accounts.*')
        ->first();

在您的控制器中,您使用的是first()。所以需要使用foreach。随便写:

   <tr>
      <td>{{ $user->accno }}</td>
      <td>{{ $user->balance }}</td>
      <td>{{ $user->amt }}</td>
   </tr>

或者您应该使用get() 而不是first()。但是,如果您只想返回一个您应该使用 first() 的数据,这取决于您的数据。如果要返回大量数据,则应使用 get()。 控制器:

$users = DB::table('accounts')
            ->join('users', 'accounts.user_id', '=', 'users.id')
            ->select('users.accno', 'accounts.*')
            ->get();

刀片:

@foreach($users as $user)
       <tr>
          <td>{{ $user->accno }}</td>
          <td>{{ $user->balance }}</td>
          <td>{{ $user->amt }}</td>
       </tr>
 @endforeach

【讨论】:

    猜你喜欢
    • 2020-05-11
    • 2014-03-24
    • 2019-06-28
    • 2018-01-15
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 2018-11-08
    相关资源
    最近更新 更多