问题是如何将外键中的数据获取到我的控制器中并传递到会话Flash消息视图。

AbsenController @店

$this->validate($request, [
            'siswa_id' => 'required',
            'keterangan' => 'required',
        ]);

    $alpaCount = Absen::where('siswa_id', '=', $request->siswa_id)
                        ->where('keterangan', '=', 'Alpa')
                        ->count();

    if (Absen::where('siswa_id', '=', $request->siswa_id)
        ->whereRaw('DATE(created_at) = CURDATE()')
        ->exists()) {
        return redirect()->back()->with('message', 'Data Telah Tersedia');
    } elseif($alpaCount >= 3) {
        $absen = new Absen;
        $absen->siswa_id = $request->siswa_id;
        $absen->keterangan = $request->keterangan;
        $absen->save();

        $nama = Siswa::where('id', '=', $request->siswa_id)->get();


        Session::flash('warning', $nama->nama.' Sudah Lebih Dari 3 Kali 
        Alpa');
        return redirect()->route('absen.index')

$ nama = Siswa :: where('id','=',$ request-> siswa_id)-> get(); 我试图用$ request-> id获取数据并获取nama字段,然后传递给Session :: flash('warning',$ nama-> nama。'Sudah Lebih Dari 3 Kali Alpa'); 返回redirect()-> route('absen.index');

艾比森@ siswa

public function siswa()
{
    return $this->belongsTo('App\Siswa');
}

Siswa @艾比森

public function absen()
{
    return $this->hasMany('App\Absen');
}

也许你可以帮我,谢谢

缺席表 缺席表

西斯瓦桌

西斯瓦桌

#1楼 票数:0

find($request->id)我认为$request->siswa_id是因为我无法在代码中的任何地方找到$ request-> id

试试使用约束急切的负荷

 $nama = Absen::with(['siswa' => function ($query) use ($request) {
    $query->where('id', $request->siswa_id);
 }])->get();

 Session::flash('warning', $nama->siswa->nama.' Sudah Lebih Dari 3 
    Kali Alpa');

编辑答案

根据您在问题中显示的表格,可以像这样完成

$namas = Absen::where('siswa',$request->siswa_id)->get(); //will return array because of absent as many siswa

foreach($namas as $nama) {
   $siswa_name = $nama->siswa->nama;
}

#2楼 票数:0

您可以加载Absensiswa ,在where子句同时过滤siswa_id ,它绑定到$request->siswa_id

$nama = Absen::with(['siswa' => function ($query) use($request) {
     $query->where('siswa_id', $request->siswa_id;);
}])->get();

另外,您可以延迟加载:

$name = Absen::find($request->id);

然后调用load函数加载相关模型。

$name->load('siswa');

由于siswa是一个数组。 您可以循环浏览并找到所需的对象名称。 或者,您可以只使用first()函数来获取第一个元素。 例如

 $nama->siswa->first()->anyproperty;

  ask by Azzario Razy translate from so

未解决问题?本站智能推荐:

2回复

如何从控制器中的表 Laravel 中删除一行(不包含数据库中的 id)

数据库不是由 Laravel 创建的,但我想从表中删除一行,并且该行没有“id”,因为它是一个中间表,在这种情况下我如何从表中删除这一行? ! 它包含 3 列的表: 客户ID 产品编号 添加日期
1回复

来自控制器的 Laravel 过滤器数据库

我正在尝试使用<option>在我的视图中制作简单的索引过滤器。 默认情况下,索引视图将显示所有数据,但我想让视图根据我制作的过滤器显示数据并将其显示在同一页面中。 这是索引(包括<option> )视图 这是过滤方法 此外,这是我的索引控制器及其路线 .
1回复

想要从laravel 5.2中的三个表中获取数据

我有一个查询,需要您的帮助,请在下面查看。 我想从产品表中获取所有数据,包括城市,价格,类型,类别等条件。 我可以获取所有数据,但不能在所有其他条件下从产品模型中获取类别数据。 以下是我的表格和雄辩的关系。 我正在使用Laravel 5.2。 关系: 这是我的查询
1回复

Laravel 8 MVC 如何将值从控制器发送到视图

我正在尝试显示我通过控制器从数据库到视图的一组值(主题标签)。 但是我被困在这个控制器中。 不确定在获取 DB 值后要使用、 view或With什么功能。 什么是最好的选择? 以及如何在视图中使用它是我的控制器类的示例代码 索引.blade.php
1回复

Laravel 4从检索的模型中调用函数

在Laravel 4中,我创建了两个数据库表:users和user_pending_updates 我创建了一个名为User的模型。 如果我得到一个用户模型: $user = User::where('email', '=', $email)->first(); 我想在
3回复

laravel从数据库检索数据需要太多时间

我正在使用使用mysql数据库的laravel项目,它具有一些包含超过500万个数据的表。将这些数据放到前端需要太多时间。 以下是我用来获取数据的功能。 我使用了一些过滤器,例如按名称($ seach),分页量(records_number)等进行日期范围(从,到)搜索,但是当我尝试获取所有
1回复

具有不同表的 Laravel 关系数据基于条件

我正在处理一个片段,但我必须检查另一个表,如果该客户数据存在,则返回数据,如果就业表中不存在客户数据,也返回基于前一个检查的数据,然后忽略其余部分,但如果存在,我想要使用指定的条件来检查并返回该数据。 这是我尝试过的。
1回复

Laravel中数据库查询构建器的位置

我可以使用范围执行与模型相关的基本查询(例如选择今天有生日的那些用户),范围显然放置在Eloquent模型中,并返回Eloquent Query Builder的实例。 但是,如果我需要执行更复杂的查询,例如按电子邮件类型对海量电子邮件日志表进行分组,与用户和电子邮件连接并应用一些汇总,该怎么