在Laravel 5中未定义的属性

7 浏览
0 Comments

在Laravel 5中未定义的属性

我查看了其他回答了相同错误的问题,我明白我有一个无法定义的属性,但不确定如何定义它。这是我第一次使用多对多的关联关系,所以我猜测这就是问题所在。\n在两个模型中,我都有belongsToMany关联,并且在ProjectController的show函数中,我有:\n$projects = Project::find($id);\n在视图中,我想显示公司名称($projects->company)和该项目上的员工及其所属部门。以下代码无法运行:\n$projects->employees->name\n$projects->employees->department\n如何访问这些属性?\n--更新--\nJeff的回答有效,但我设置了一个表格,如下:\n

PM AM

\n

@if($employee->department == \'项目经理\'){{ $employee->name }}

\n

@else($employee->department == \'客户经理\'){{ $employee->name }}

@endif\n但这无法显示正确的员工在各自的部分中。有什么办法可以解决这个问题?

0
0 Comments

在Laravel 5中出现Undefined property错误的原因是由于在代码中访问了一个不存在的属性。解决方法是使用foreach循环来遍历每一个员工,并在对应的部门下显示正确的人员。

首先,感谢-lambert。我添加了一个foreach循环,但是我将它添加到了整个行中,就像他的第一个更新一样。然而,这样做是不起作用的,因为员工没有显示在他们对应的部门下。例如,项目经理的员工显示在了客户经理的下面。为了解决这个问题,我必须在每个

中都添加一个foreach循环。

下面是解决问题的代码:


@foreach ($projects->employees as $employee)
  @if ($employee->department == 'Project Manager')
    {{ $employee->name }}
  @endif
@endforeach

希望这能帮助解释清楚这个问题。

0
0 Comments

问题出现的原因是$project->employees是一个集合,而不是一个单独的员工实例。需要使用foreach循环来访问每个员工的姓名。

解决方法是使用foreach循环对$project->employees进行迭代,并通过$employee->name和$employee->department来访问每个员工的姓名和部门。另外,可以使用if语句对不同的部门进行判断,并在相应的表格单元格中显示员工的姓名或部门。

如果想要按照部门对相关实体进行排序,可以使用$project->employees()->orderBy('department', 'DESC')->get()来修改查询。需要注意的是,这里调用了关联方法employees()而不是访问属性。

另外,需要检查Blade if语句的文档,以了解更多信息。

如果将问题修改更新到问题中,请确保更改正确,以免出现拷贝/粘贴错误。

如果问题仍然存在,可能需要检查HTML结构或逻辑是否有问题。

0