我无法在数据库关系中访问MODEL字段

时间:2019-06-28 06:46:17

标签: php laravel eloquent

我无法访问数据库中的MODEL字段

这是我执行的代码:

@foreach($clients as client)
    {{$client->dependents->fname}}
    {{$client->dependents->mname}}
    {{$client->dependents->lname}}
@endforeach

此代码返回一个error:此集合实例上不存在属性[fname]。

执行此代码时:

@foreach($clients as client)
    {{$client->dependents}}
@endforeach

此代码返回一个successful数据数组。

这是我的客户模型:

class Client extends Model
{
    protected $guarded = [];

    public function dependents() {
        return $this->hasMany(Dependent::class);
    }
}

这是我的依赖模型:

class Code extends Model
{
    protected $guarded = [];

    public function client()
    {
        return $this->hasOne(Client::class);
    }
}

如何使用雄辩的模型方法检索每个字段?

2 个答案:

答案 0 :(得分:2)

要访问依赖模型上的字段,您需要做一个foreach,因为客户端模型有很多依赖,并且当您尝试访问 $ client-> depends->时fname 不知道要访问哪个。 因此,您需要执行以下操作:

@foreach($clients as $client)
    @foreach($client->dependents as $dependent)
       {{$dependent->fname}}
       {{$dependent->mname}}
       {{$dependent->lname}}
    @endforeach
@endforeach

答案 1 :(得分:0)

这是HasMany关系,并且它返回多个部门,因此fname未定义。因为它有部门的对象,而不是部门的对象,所以您从$中丢失了@foreach($clients as client)

@foreach($clients as $client)
 @foreach($clients->dependents as $department)
   {{$dependent->fname}}
   {{$dependent->mname}}
   {{$dependent->lname}}
 @endforeach
@endforeach

尝试一下,它将为您服务。享受吧!