有一对一的“赞”关系的口才

时间:2019-05-23 14:51:39

标签: php laravel laravel-5 eloquent laravel-5.8

我目前有一个雄辩的模型,我已尝试对此示例进行简化,并且具有与以下类似的结构。

class Student extends Model {

    public function classes()
    {
        return $this->hasMany('App\Classes', 'class_code','code');
    }

    public function events()
    {
        return $this->hasOne('App\Events', 'event_code', 'code');
    }

}

每个学生都有分配的代码。因此,可以通过此代码以一对多/一对一的关系将学生与班级或事件进行匹配。问题是事件的关系。代码略有不同。

在课堂上,代码将为11-ABCD.00

对于事件,代码为:11-ABCD

事件代码中缺少小数点,但其他代码相同。小数点仅允许更精细的细分。对于关系而言,这并不重要,也可能并不总是存在,即学生可能没有与之相关的课程或事件。

我可以像这样手动检索事件记录:

class Student extends Model {

public function events($code)
{        
        $code = explode('.', $code);

        if(count($code) > 0)
        {    
            $code = $code[0];
        }

        return Event::where('code', $code)->first();
    }
}

但是,当我想检索整个集合时,这并不是雄辩的真正精神。

$results = Student::with('events')->first();

简而言之,我可以设计事件的关系以自动获取键“代码”并剥离它,以便我检索相关记录吗?

示例代码:

学生(模型)(10-ABCD.10)

类(一对多)(10-ABCD.10)

事件(一对一)(10-ABCD)

0 个答案:

没有答案