Laravel 中的采摘和内爆方法?
Pluck and Implode Method in Laravel?
我有三个 classes Student、Session 和 student classes 它有关系(Student with Enrollment、Session with Enrollment 和 student Class with enrollment),当我回显它显示结果
[{"id":1,"school_id":1,"class_id":1,"student_id":1,"session_id":1," =34=]":null,"updated_at":null}] ,我从学生 class
那里获取了价值
{{implode(',',$en->school()->get()->pluck('school_name')->toArray())}}
注意它正在工作
与 Session 相同,它也在工作,但是当我从学生 class 中提取并需要 class_name 时,它没有显示错误,但不是从学生 class 中提取的值,这里是blade.php
中相同类型的查询
{{implode(',',$en->studentclass()->get()->pluck('class_name')->toArray())}}
这里是StudentClassController
中一对多的关系
public function enrollments()
{
return $this->hasMany(Enrollement::class);
}
入学人数Class
public function studentclass()
{
return $this->belongsTo(StudentClass::class);
}
如何使用此关系从 table 中选取 class_name 值。谢谢
您可以使用下面给出的简单 .
符号提取关系的列。
{{ implode(',', $en->studentclass()->pluck('studentclass.class_name')->toArray()) }}
在这里,它的形式是,relationship
。column
首先请注意,您可以在illuminate/collection方法上使用implode
方法:
{{ $en->school()->get()->pluck('school_name')->implode(', ') }}
可以进一步缩短为
{{ $en->school->pluck('school_name')->implode(', ') }}
学生class可以这样摘
{{ $en->studentclass->pluck('enrollments.class_name')->implode(', ') }}
使用点语法访问 class 名称。
为了防止这造成 n+1 问题并减少查询数量 运行,您应该延迟加载关系:
{{ $en->load('studentclass.enrollments')->studentclass->pluck('enrollments.class_name')->implode(', ') }}
也可以提前加载:
$en = Enrollment::with('studentclass.enrollments')->where('id', $id)->first();
我已经更改了注册模型中的学生班级功能
public function studentclass()
{
return $this->belongsTo(StudentClass::class,'id');
}
只需添加 'id' 并从视图中提取
{{implode(',',$en->studentclass()->get()->pluck('class_name')->toArray())}}
我有三个 classes Student、Session 和 student classes 它有关系(Student with Enrollment、Session with Enrollment 和 student Class with enrollment),当我回显它显示结果 [{"id":1,"school_id":1,"class_id":1,"student_id":1,"session_id":1," =34=]":null,"updated_at":null}] ,我从学生 class
那里获取了价值{{implode(',',$en->school()->get()->pluck('school_name')->toArray())}}
注意它正在工作
与 Session 相同,它也在工作,但是当我从学生 class 中提取并需要 class_name 时,它没有显示错误,但不是从学生 class 中提取的值,这里是blade.php
中相同类型的查询{{implode(',',$en->studentclass()->get()->pluck('class_name')->toArray())}}
这里是StudentClassController
中一对多的关系public function enrollments()
{
return $this->hasMany(Enrollement::class);
}
入学人数Class
public function studentclass()
{
return $this->belongsTo(StudentClass::class);
}
如何使用此关系从 table 中选取 class_name 值。谢谢
您可以使用下面给出的简单 .
符号提取关系的列。
{{ implode(',', $en->studentclass()->pluck('studentclass.class_name')->toArray()) }}
在这里,它的形式是,relationship
。column
首先请注意,您可以在illuminate/collection方法上使用implode
方法:
{{ $en->school()->get()->pluck('school_name')->implode(', ') }}
可以进一步缩短为
{{ $en->school->pluck('school_name')->implode(', ') }}
学生class可以这样摘
{{ $en->studentclass->pluck('enrollments.class_name')->implode(', ') }}
使用点语法访问 class 名称。
为了防止这造成 n+1 问题并减少查询数量 运行,您应该延迟加载关系:
{{ $en->load('studentclass.enrollments')->studentclass->pluck('enrollments.class_name')->implode(', ') }}
也可以提前加载:
$en = Enrollment::with('studentclass.enrollments')->where('id', $id)->first();
我已经更改了注册模型中的学生班级功能
public function studentclass()
{
return $this->belongsTo(StudentClass::class,'id');
}
只需添加 'id' 并从视图中提取
{{implode(',',$en->studentclass()->get()->pluck('class_name')->toArray())}}