Laravel 拉威尔的拔出和内爆方法?

Laravel 拉威尔的拔出和内爆方法?,laravel,eloquent,laravel-blade,laravel-controller,laravel-models,Laravel,Eloquent,Laravel Blade,Laravel Controller,Laravel Models,我有三个班级学生,课时和学生班级它有一个关系(学生与注册,课时与注册,学生班级与注册),当我回显它时,显示结果 [{“id”:1,“school_id”:1,“class_id”:1,“student_id”:1,“session_id”:1,“created_at”:null,“updated_at”:null}],我从student class中提取了值 {{implode(',',$en->school()->get()->pluck('school_name')->

我有三个班级学生,课时和学生班级它有一个关系(学生与注册,课时与注册,学生班级与注册),当我回显它时,显示结果 [{“id”:1,“school_id”:1,“class_id”:1,“student_id”:1,“session_id”:1,“created_at”:null,“updated_at”:null}],我从student class中提取了值

{{implode(',',$en->school()->get()->pluck('school_name')->toArray())}}
注意,它正在工作


与会话相同,它也在工作,但当我从student类中提取并需要class_name时,它不会显示错误,但不会显示从studentclass中提取的值。这里是blade.php中相同类型的查询

{{implode(',',$en->studentclass()->get()->pluck('class_name')->toArray())}}

以下是StudentClass控制器中一对多的关系

public function enrollments()
    {
        return $this->hasMany(Enrollement::class);
    }
入学班

public function studentclass()
    {
        return $this->belongsTo(StudentClass::class);
    }

如何使用此关系从表中选择类名值。谢谢

您可以使用下面给出的简单的
符号提取关系的列

{{内爆(',',$en->studentclass()->pull('studentclass.class_name')->toArray())}

在这里,它的形式是,
关系

您可以使用下面给出的简单的
符号来提取关系的列

{{内爆(',',$en->studentclass()->pull('studentclass.class_name')->toArray())}

这里,它的形式为,
关系

首先,请注意,您可以在照明/收集方法上使用
内爆
方法:

{{ $en->school()->get()->pluck('school_name')->implode(', ') }}
可以进一步缩短为

{{ $en->school->pluck('school_name')->implode(', ') }}
学生班可以这样被拉扯

{{ $en->studentclass->pluck('enrollments.class_name')->implode(', ') }}
使用点语法访问类名

要防止这产生n+1问题并减少运行的查询数,应延迟加载关系:

{{ $en->load('studentclass.enrollments')->studentclass->pluck('enrollments.class_name')->implode(', ') }}
您也可以提前加载它:

$en=Enrollment::with('studentclass.enrollments')->其中('id',$id)->first();

首先,请注意,您可以使用照明/收集方法上的
内爆方法:

{{ $en->school()->get()->pluck('school_name')->implode(', ') }}
可以进一步缩短为

{{ $en->school->pluck('school_name')->implode(', ') }}
学生班可以这样被拉扯

{{ $en->studentclass->pluck('enrollments.class_name')->implode(', ') }}
使用点语法访问类名

要防止这产生n+1问题并减少运行的查询数,应延迟加载关系:

{{ $en->load('studentclass.enrollments')->studentclass->pluck('enrollments.class_name')->implode(', ') }}
您也可以提前加载它:

$en=Enrollment::with('studentclass.enrollments')->其中('id',$id)->first();

我已更改了注册模型中的studentclass函数

public function studentclass()
    {
        return $this->belongsTo(StudentClass::class,'id');
    }
只需添加“id”并从视图中删除即可

{{implode(',',$en->studentclass()->get()->pluck('class_name')->toArray())}}

我已更改了注册模型中的studentclass函数

public function studentclass()
    {
        return $this->belongsTo(StudentClass::class,'id');
    }
只需添加“id”并从视图中删除即可

{{implode(',',$en->studentclass()->get()->pluck('class_name')->toArray())}}

{{$en->school()->pulk('school_name')->introde(',')}或{{{introde(',','en->school()->get()->pulk('school_name')->toArray())}这两种方法都有效,但从studentclass函数中选择类名是不起作用的,即使关系也没有问题,如果我回显$en,它将从EnrollementClassecho中获取类id显示以下结果[{“id”:1,“school_id”:1,“class_id”:1,“student_id”:1,“session_id”:1,“created_at”:null,“updated_at”:null}]这意味着我们有class_id,为什么我们不能在注册模型中使用关系函数studentclass来选择类名?如果您看到我答案中的第二个示例,它显示了如何实现这一点。{{$en->school()->pull('school_name')->introde(',')}或{{introde(“,”,$en->school()->get()->pulk('school_name')->toArray())}这两种方法都有效,但从studentclass函数中选择类名却不起作用,即使关系正常,如果我回显$en,它从注册中获取类名classecho$en显示以下结果[{“id”:1,“school_id”:1,“class_id”:1,“student_id”:1,“session_id”:1,“created_at”:null,“updated_at”:null}]这意味着我们有class_id为什么不能在注册模型中使用关系函数studentclass来选择类名如果你看到我答案中的第二个例子,它展示了如何实现这一点。{{$en->school()->pulk('school_name')->introde(',')}或{{{introde(',',','en->school()->get()->pulk pulk school('school_name')->toArray()}从studentclass函数中选择类名这两种方法都有效,但不起作用,甚至关系也可以,如果我回显$en,则从Enrolement classecho$en中获取类名,并显示以下结果[{“id”:1,“school\u id”:1,“class\u id”:1,“session\u id”:1,“created\u at”:null,“Update\u at”:null}]这意味着我们有class_id,为什么我们不能在注册模型{{$en->school()->pulk('school_name')->introde(',')}或{{introde(',','en->school()->get()->pulk('school_name')->toArray()}中使用关系函数studentclass_name从studentclass函数中选择类名这两种方法都有效,但不起作用,甚至关系也可以,如果我回显$en,则从Enrolement classecho$en中获取类名,并显示以下结果[{“id”:1,“school\u id”:1,“class\u id”:1,“session\u id”:1,“created\u at”:null,“Update\u at”:null}]这意味着我们有class_id,为什么我们不能在注册模型中使用关系函数studentclass来选择class_名称