1

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

学生

--------------
|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 相关的日期。

4

2 回答 2

0

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

于 2019-05-21T07:58:36.083 回答
0

一旦你得到你的StudentFees对象,你就可以Student使用$studentFee->student.

但是如果你绝对需要那种输出,你可以写类似的东西

$studentFees = StudentFees::all();
if ($studentFees) {
    $output = $studentFees->map(function($fee) {
        return [ $fee->paid_fees, $fee->student->created_at ];
    });   
    // do whatever you want with $output;
}
于 2019-05-21T07:45:31.567 回答