【问题标题】:Laravel - How to Add another Join to get multiple tablesLaravel - 如何添加另一个联接以获取多个表
【发布时间】:2018-12-31 02:59:31
【问题描述】:

你好,我有 1 个连接表,这是我的连接语句。但我只有一个连接语句,它只得到 1 个表我需要另外 4 个表来加入或获取所以我该如何在这个 sql 连接查询上做到这一点

假设我需要添加这些表:productsstocksfoodsbeverage

我的连接查询语句

$getairId = DB::table('aircrafts')
  ->join('movies','movies.aircraft_id','=','aircrafts.aircraft_id')
  ->select('movies.*')
  ->where('aircrafts.aircraft_id','=', $airid)
  ->get();

如何添加另一个连接

【问题讨论】:

    标签: php mysql laravel eloquent


    【解决方案1】:

    我是 laravel 的新手,但我已经编写了两个连接来检索 created_byupdated_by 类别表中的名称和用户表中的名称

    这是我的查询

    $result = DB::table('categories')
                ->leftJoin('users as created_table', 'created_table.id', '=', 'categories.created_by')
                ->leftJoin('users as updated_table', 'updated_table.id', '=', 'categories.updated_by')
                ->select('categories.*','created_table.name as created_by','updated_table.name as updated_by')
                ->paginate(3);
    

    请添加尽可能多的连接并根据您的要求进行自定义

    添加屏幕截图

    categories表数据

    users表数据

    刀片文件显示数据

    @extends('layouts.app')
    
    @section('content')
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">
                        Category 
                        <strong style="float:right;"><a href="{{ url('/category/add') }}">Add</a>  | </strong>
                     </div>
    
                    <table cellpadding="5" cellspacing="5" border="1">
                        <tr>
                                <td>#</td>
                                <td>Category Name</td>
                                <td>Created Date</td>
                                <td>Created By</td>
                                <td>Updated By</td>
                        </tr>
                        <?php $sno = 0 ?>
                        @foreach($result as $data_key => $data)
                        <!-- {{ $sno++ }}  -->
    
                        <tr>
                                <td>{{ $loop->iteration }}</td>
                                <td>{!! $data->category_name !!}</td>
                                <td>{!! $data->created_at !!}</td>
                                <td>{!! $data->created_by !!}</td>
                                <td>{!! $data->updated_by !!}</td>
                        </tr>
    
                        @endforeach
                    </table>
    
                    <div class="card-header">
                        {{ $result->links() }}
                     </div>
    
    
                </div>
            </div>
        </div>
    </div>
    @endsection
    

    然后附上分类列表的截图

    【讨论】:

    • 嘿,先生,谢谢您的回复。我可以看到输出或已获取的数据吗?谢谢:)
    【解决方案2】:

    或者你可以去寻找雄辩的关系laravel eloquent relationship。如果您想使用较少的连接查询,这将对您有所帮助。

    前。您可以像这样获取飞机详细信息

    在你的飞机上添加这个功能 eloquent

     public function movie()
        {
            return $this->hasOne('App\Movie','aircraft_id','aircraft_id');
        }
    

    你可以在你的控制器中像这样使用它

    $getairId = DB::table('aircrafts')->with('movie')->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多