在Laravel/PHP中将一个额外字段放入数组

在Laravel/PHP中将一个额外字段放入数组,php,arrays,laravel,Php,Arrays,Laravel,我将返回项目团队成员的详细信息 所涉及的表格包括: users projects members (为简洁起见进行了编辑,它们看起来像这样) 项目可以有多个成员,而成员表实际上是用户的数据透视表 目前正在使用此: $projectTeam = []; $project[0]->members() ->with('users') ->where('user_id','!=',0) ->where('status','=',"Active")

我将返回项目团队成员的详细信息

所涉及的表格包括:

 users
 projects 
 members
(为简洁起见进行了编辑,它们看起来像这样)

项目可以有多个成员,而成员表实际上是用户的数据透视表

目前正在使用此:

$projectTeam = [];
$project[0]->members()
    ->with('users')
    ->where('user_id','!=',0)
    ->where('status','=',"Active")
    ->get()
    ->each(function ($member) use(&$projectTeam)
    {
        $projectTeam[$member->id] = $member->users;
    });
在上面的循环中,我想做的是评估用户记录,然后如果化身字段已填充且化身类型为某个值,则在结果中创建/推送/附加另一个字段,以便我可以添加额外信息

大概是这样的:

$projectTeam = [];
$project[0]->members()
    ->with('users')
    ->where('status','=',"Active")
    ->get()
    ->each(function ($member) use(&$projectTeam)
    {
        $projectTeam[$member->id] = $member->users;

            if($member->users->avatar<>"")
            {
                if($member->users->avatar-type=="1")
                {
                    array_push($projectTeam[$member->id], "imgClass='alpha'")
                }
                if($member->users->avatar-type=="2")
                {
                    array_push($projectTeam[$member->id], "imgClass='beta'")
                }
            }
    });
<img src="{{$teammember->avatar}}" class="{{$teammember->imgClass" /> 
$projectTeam=[];
$project[0]->members()
->带('用户')
->其中('status','=','Active')
->得到()
->每个(功能($member)使用(&$projectTeam)
{
$projectTeam[$member->id]=$member->users;
如果($member->users->avatar“”)
{
如果($member->users->avatar type==“1”)
{
数组推送($projectTeam[$member->id],“imgClass='alpha')
}
如果($member->users->avatar type==“2”)
{
数组推送($projectTeam[$member->id],“imgClass='beta'))
}
}
});
因此,当我在前端调用这些图像记录时,我可以用这个新字段填充html类

大概是这样的:

$projectTeam = [];
$project[0]->members()
    ->with('users')
    ->where('status','=',"Active")
    ->get()
    ->each(function ($member) use(&$projectTeam)
    {
        $projectTeam[$member->id] = $member->users;

            if($member->users->avatar<>"")
            {
                if($member->users->avatar-type=="1")
                {
                    array_push($projectTeam[$member->id], "imgClass='alpha'")
                }
                if($member->users->avatar-type=="2")
                {
                    array_push($projectTeam[$member->id], "imgClass='beta'")
                }
            }
    });
<img src="{{$teammember->avatar}}" class="{{$teammember->imgClass" /> 
avatar}}“class=“{{{$teammember->imgClass”/
希望这有意义

如何在该额外字段中添加内容?

如何:

$projectTeam[$member->id]->imgClass = 'alpha'

现在来看看真正雄辩的答案

你想做的就是去做

class ProjectTeam
{
    protected $appends = ['imageClass'];

    public function getImageClassAttribute()
    {
        return 'whatever';
    }
}

现在,无论何时调用
$projectTeam->imageClass
,您都会得到
无论什么

谢谢,我得到一个错误“从空值创建默认对象”“也许我需要以某种方式声明那个新字段?啊,我的错,我已经移动了东西-现在都排序好了,谢谢。看起来这是一个很好的方法!所以在函数getImageClassAttribute中,我会评估$member->users->avatar字段并返回相应的类吗?是的,但是你可能更适合与适当的有说服力的关系。。。