如何使用laravel雄辩地联接表?

塔比斯

码:

function viewPDF()
{
$reports = Report::with([
        'quarters' => function($query) {
            // filters on quarters table
            return $query->where('column', 'value');
        },
        'presidents' => function($query) {
            // filters on presidents table
            return $query->where('column', 'value');
        }
    ])
    ->filter()  // only for reports table
    ->latest()
    ->get();

$pdf = PDF::loadView('reports.test1', ['reports' => $reports]);
return $pdf->stream('reports.pdf');
}

我想用口才来做。拜托,我该怎么办?

1桌 quarters

Schema::create('quarters', function (Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->timestamps();
});
Schema::create('quarter_report', function (Blueprint $table) {
    $table->integer('quarter_id')->unsigned();
    $table->integer('report_id')->unsigned();
    $table->primary(['quarter_id' , 'report_id']);
});

2桌 presidents

Schema::create('presidents', function (Blueprint $table) {
        $table->Increments('id');
        $table->string('P_name');
        $table->timestamps();
    });
 Schema::create('president_report', function (Blueprint $table) {
        $table->integer('president_id')->unsigned();
        $table->integer('report_id')->unsigned();
        $table->primary(['president_id','report_id']);
    });

3桌 reports

Schema::create('reports', function (Blueprint $table) {
        $table->Increments('id');
        $table->integer('user_id')->unsigned();
        $table->string('target_value');
        $table->text('major_activity');
        $table->string('indicator');
        $table->string('responsibility');
        $table->string('progress_activity');
        $table->string('documents')->nullable();
        $table->string('percentage_activity')->nullable();
        $table->text('problem')->nullable();
        $table->text('solution')->nullable();
        $table->text('description')->nullable();
        $table->string('image')->default('default.png');
        $table->tinyInteger('status')->default('0');
        $table->tinyInteger('active')->default('0');
        $table->timestamps();
    });

报告模型

class Report extends Model
{

public function quarters() {
    return $this->belongsToMany('App\Quarter', 'quarter_report', 'report_id', 'quarter_id');
}

public function presidents() {
    return $this->belongsToMany('App\President', 'president_report', 'report_id', 'president_id');
}

public function scopeFilter($query){
    $president = request('president');
    if ( isset($president)&& trim($president) != '' && $president != 'all'){
        $query->whereHas('presidents' , function ($query )use ($president){
            $query->whereId($president);
        });
    }
    $quarter = request('quarter');
    if ( isset($quarter)&& trim($quarter) != '' && $quarter != 'all'){
        $query->whereHas('quarters' , function ($query )use ($quarter){
            $query->whereId($quarter);
        });
    }


  }

总统模型

class President extends Model
{

public function reports() {
    return $this->belongsToMany('App\Report', 'president_report', 'president_id', 'report_id');
}
}

四分之一模型

class Quarter extends Model
{
public function reports() {
    return $this->belongsToMany('App\Report', 'quarter_report',  'quarter_id', 'report_id');
}
 }
扎希德·哈桑emon

您想将presidents表与president_report表连接。但是您president_report两次加入表。正确的方法应该是

$reports = Report::join('president_report', 'reports.id', '=','president_report.report_id')
    ->join('presidents', 'presidents.id', '=', 'president_report.president_id')
    ->join('quarter_report', 'president_report.report_id', '=', 'quarter_report.report_id')
    ->latest('reports.created_at')
    ->get();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Laravel雄辩地联接3个表

来自分类Dev

在Laravel 5.3中雄辩地讲如何使用where条件检索第3个表数据

来自分类Dev

如何在laravel雄辩地加入多个表

来自分类Dev

用laravel雄辩地联接两个数据库表

来自分类Dev

Laravel雄辩地使用不需要timestamps()的表

来自分类Dev

Laravel使用Laravel雄辩的联接查询

来自分类Dev

Laravel 4.2雄辩地将list()与联接查询一起使用

来自分类Dev

Laravel 4.2雄辩地将list()与联接查询一起使用

来自分类Dev

Laravel雄辩地加入几个表

来自分类Dev

Laravel雄辩地与数据透视表

来自分类Dev

雄辩的日期联接表

来自分类Dev

雄辩的-自己的联接表

来自分类Dev

Laravel在多个联接表上雄辩的'withCount'函数

来自分类Dev

如何在laravel中雄辩地加入三个表?

来自分类Dev

在雄辩的Laravel 5.2中联接2个表-如何从两个表中检索所有数据?

来自分类Dev

在雄辩的Laravel 5.2中联接2个表-如何从两个表中检索所有数据?

来自分类Dev

Laravel雄辩地投票

来自分类Dev

Laravel雄辩地循环

来自分类Dev

Laravel雄辩地投票

来自分类Dev

Laravel雄辩地加入表和计数相关

来自分类Dev

Laravel在中间表上雄辩地进行多对多过滤

来自分类Dev

laravel雄辩地更改了我的查询表名称...???

来自分类Dev

laravel 5.1雄辩地选择带有前缀的连接表

来自分类Dev

雄辩的Laravel中使用联接后总和不正确

来自分类Dev

我如何使用Laravel雄辩地获得“选择计数(*)分组依据”

来自分类Dev

sql-如何使用laravel雄辩地从SQL中正确获取5个字符?

来自分类Dev

如何在Laravel上使用max()联接多个表

来自分类Dev

雄辩地使用别名

来自分类Dev

在Laravel中雄辩地使用time_to_sec()

Related 相关文章

热门标签

归档