我有一个控制器,它有这样一个查询:

$post = Post::find($id);
$comments = $post->comments;

一篇帖子有很多 comments ,而一条 comments 属于一篇帖子.comments模型有一个id、comment、tag字段.

我想做的是,对于像这样的任何查询,模型都会返回id、comment、tag和tag_translated字段,其中后者只是使用Lang facade对标记的翻译.

我可以通过在控制器上使用for来解决这个问题,它迭代$comments并添加字段,但是我必须对每个需要tag_translared字段的控制器都这样做.有没有办法要求模型包含这样一个字段?

推荐答案

将此添加到您的Comment型号中:

protected $appends = ['tag_translated'];

public function getTagTranslatedAttribute()
{
    return 'the translated tag';
}

希望这有帮助.

Laravel相关问答推荐

Uncaught ReferenceError:未定义require[Shopify PHP React Browser问题]

Laravel Eloquent查询与集合优化

如何正确使用 Spatie\Laravel Data 来获取数据?

Laravel AppServiceProvider 中的代码在通过 DeployHQ 部署时停止 Composer 和构建

分页计数(*)查询问题

如何仅将日期列解析为月和日?

使用 fetch api 时 Laravel 控制器不存在错误

如何在 laravel 5.3 中验证没有 auth:api 中间件的用户?

给定的角色或权限应该使用 guard `` 而不是 `web`. -Laravel

Laravel 5 日志(log)中的最大文件数

Laravel:Blade foreach 循环 bootstrap 列

Heroku 上的 Laravel 队列工作者

file_put_content ...无法打开流:Laravel 5 中的权限被拒绝

合并和排序两个 Eloquent 集合?

Laravel 生产问题 - 使用 Laravel 4.1.x 更新composer

未定义的类常量App\Providers\RouteServiceProvider::HOME

如何从不是控制器方法的方法发送响应?

Laravel Mix 生成字体到另一个目录

Laravel - 动态创建表(无需迁移)

找不到 HOME 环境 -- 扩展 `~'