You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何根据登录用户展示关联的子数据?

解决方案

方法一:修改查询构建器,过滤当前登录用户

你的getAnak方法目前查询了所有用户的孩子数据,只需添加where条件限定当前登录用户ID即可:

public function getAnak(){
    $currentUserId = auth()->id(); // 获取当前登录用户ID
    $dataanak = DB::table('users as I')
                ->select('A.id_anak', 'A.nama_anak','A.tempat_lhr','A.tgl_lhr','A.bb_lahir','A.tb_lahir','A.jenis_kelamin','A.jenis_persalinan','A.tempat_persalinan','A.dokter','A.NIK_anak')
                ->leftjoin('anaks as A', 'I.id', '=', 'A.id_ibu')
                ->where('I.id', $currentUserId) // 新增条件:仅查询当前用户的孩子数据
                ->get();
                
    return view('user.dataanak', compact('dataanak'));
}

方法二:使用Eloquent关联(推荐)

Laravel的Eloquent ORM更适合处理模型关联,代码更简洁易维护:

  1. 定义模型关联
    在User模型中添加关联方法:

    // app/Models/User.php
    public function anaks()
    {
        return $this->hasMany(Anak::class, 'id_ibu', 'id');
    }
    

    若未创建Anak模型,新建app/Models/Anak.php:

    // app/Models/Anak.php
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Anak extends Model
    {
        protected $table = 'anaks';
        protected $primaryKey = 'id_anak';
    }
    
  2. 修改控制器方法
    直接通过当前用户模型获取关联的孩子数据:

    public function getAnak(){
        $dataanak = auth()->user()->anaks; // 直接获取当前用户的所有孩子
        return view('user.dataanak', compact('dataanak'));
    }
    

在视图中展示孩子数据

在user.dataanak视图中循环遍历数据即可:

<div class="row">
    @foreach($dataanak as $anak)
        <div class="col-lg-4 mb-4">
            <div class="card">
                <div class="card-body">
                    <h5>Nama Anak: {{ $anak->nama_anak }}</h5>
                    <p>Tempat Lahir: {{ $anak->tempat_lhr }}</p>
                    <p>Tanggal Lahir: {{ $anak->tgl_lhr }}</p>
                    <!-- 按需展示其他字段 -->
                </div>
            </div>
        </div>
    @endforeach
</div>

内容的提问来源于stack exchange,提问作者Lanz King

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:18:17