首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Spatie/Activitylog获取基于id的模型属性名称?

如何使用Spatie/Activitylog获取基于id的模型属性名称?
EN

Stack Overflow用户
提问于 2019-03-28 21:19:46
回答 1查看 602关注 0票数 2

我正在尝试使用空间/活动日志activity_log表的属性属性来获取基于任务模型的employee_id的员工姓名。

我的模型:

代码语言:javascript
复制
use LogsActivity;

    protected $fillable = ['id','employee_id', 'name', 'description'......];

    protected static $logAttributes = ['id','employee_id','name', 'description'......];

    protected static $logFillable = true;
    protected static $logUnguarded = true;

我的控制器:

代码语言:javascript
复制
    {
        $activity = Activity::orderBy('id', 'DESC')->paginate(15);

        return view('adminlte::home', ['activity' => $activity]);
    }

我的刀锋:

代码语言:javascript
复制
@foreach($activity as $act)

  {{$act->changes['attributes']['employee_id']}}

@endforeach

保存在属性字段中的记录:

代码语言:javascript
复制
{"attributes":{"id":170,"employee_id":"[\"1\",\"2\"]","name":"test","description":"test",......}}

另外,在我的刀片中,结果是:

代码语言:javascript
复制
|employee_id | name       | description| ...
|------------|------------|------------|--------
|["1","2"]   | test       | test       | ....

问题是,如何获取基于employee_id的名称字段。例如,在这种情况下,Jon,David(而不是他们的in (“1”,"2")。所以,我想要的是名字而不是ID。

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2019-03-28 21:45:23

我会从数据库中获取它们

1)创建ids列表并获取。

代码语言:javascript
复制
$employees = Employee::whereIn('id', $activity->pluck('employee_id')->flatten())
    ->get()
    ->mapWithKeys(function ($employee) {
        return [$employee->id => $employee];
    });

2)发送到前端

代码语言:javascript
复制
return view('adminlte::home', ['activity' => $activity, 'employees' => $employees]);

3)使用映射来显示名称

代码语言:javascript
复制
@foreach($activity as $act)
     @foreach($act->changes['attributes']['employee_id'] as $employeeId)
          {{ $employees[$employeeId] }}, 
     @endforeach
@endforeach
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55398679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档