猿问

如何在 laravel 中创建自定义关系?

是否可以像这样在 Laravel 中创建自定义关系,


SELECT tasks.* 

FROM tasks

LEFT JOIN priorities ON tasks.priority_identifier LIKE CONCAT('%', priorities.identifier)

WHERE priority.id = 10

我可以使用查询生成器来创建这个连接,但我怎样才能将它作为 laravel 关系返回?


编辑


我试图在不使用现有关系方法(hasMany、hasOne 等)的情况下做到这一点


九州编程
浏览 93回答 2
2回答

慕标琳琳

我不认为你可以创建自定义关系,除非覆盖 Eloquent base class。并添加您自己的。但是您可以使用 Eloquentscopes替代自定义关系。也看看这里和这里

芜湖不芜

是的,你可以像任何其他查询构建器一样向 Laravel 关系添加条件。我不知道你的关系会是什么样子,但你可以这样做:public function tasks(){    return $this->hasMany(Task::class)        ->where('priority', 10);}
随时随地看视频慕课网APP
我要回答