首页 > 解决方案 > 使用 student_id 作为外键从费用表中获取提交的费用列表以及日期

问题描述

我有一个 学生表和费用表。

学生

--------------
|id | name |
--------------

费用

---------------------------------------------------------
| id| student_id | paid_fees | created_at | updated_at | 
---------------------------------------------------------

这里,student_idfrom fee 是foreign key指对idonstudents.

我有两个模型用于这些表,并且我已经定义了它们之间的hasMany关系。因为,一个学生可以分部分提交总费用,所以他可以在表格中有多个记录fees

学生.php

lass Student extends Authenticatable
{
    use Notifiable;

    protected $fillable = [
        'name', 'roll_no', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];

    protected $casts = [
        'email_verified_at' => 'datetime',
    ];


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

}

费用.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Fees extends Model
{
    public function student(){
        return $this->belongsTo('App\Student');
    }
}

我试图获取与 srudent_id 相关的记录的所有出现。
$student->fees->where('student_id', $student - >id)
它给了我一个作为对象的记录数组。请建议是否有更好的方法。

我正在尝试获取paid_fee与 student_id 相关的记录created_atupdated_at记录。

可能是这样的:[ [2500, '2019-05-19], [3500, '2019-06-28'] ]

因此,我试图获取所有提交费用的列表以及与 student_id 相关的日期。

标签: laravellaravel-5eloquenteloquent-relationship

解决方案


在我看来,你创建了你的文件Fee.php,你的类模型是StudentFees. 似乎不匹配。我认为您应该将该文件重命名为StudentFees.php.


推荐阅读