使用eloquent对象替换字符串中的占位符的有效方法

时间:2015-11-13 15:13:50

标签: laravel eloquent laravel-5.1

我有一个Eloquent类成员,关系定义为DistrictProfession

可以将Member类的实例传递给使用此实例从字符串替换占位符的方法。

占位符的格式为%placeholder%,其中占位符可以是attribute Member类,也可以是attribute来自其关系,使用点符号{{1} },%name%

我面临的问题是,我得到的%district.name%实例没有关系加载。

所以我必须像这样重新加载实例。

Member

然后我使用这种语法替换占位符。

$member = Member::with(['district', 'profession'])->find($member->id);

请指导我是否有效地执行此操作,或者还有其他方法可以实现此目的。特别是我不想对急切的加载关系进行另一个db调用,以便将它们转换为数组。

1 个答案:

答案 0 :(得分:2)

您无需重新加载该成员。使用loadlazy eager load关系:

$member->load('district', 'profession');