![](/img/trans.png)
[英]Laravel - Making a HasManyThrough Relationship provide a unique collection
[英]Unique collection in Laravel
我需要找出独特的价值。 所以我尝试了下面的代码。 它是通过未定义的变量错误。
控制器:
$employee = Employee::all();
Return view ('page', compact('employee'));
页面预览:
$uniqueEmpLoc = $employee->unique('location')->values()->list('location')->toArray();
@Foreach($uniqueEmpLoc as $empLoc)
{{ $empLoc }}
//this is select box used for search
@endforeach
//Display Entire data
@foreach($employee as @employee)
//Display all value
@endforeach
但是我得到了一个uniqueEmpLoc
is undefined 错误。 我正在使用 LARAVEL 5.1。 请帮我解决这个问题。
您的代码中存在一些错误:
compact(employee)
行不通。 这不应该是compact('employee')
吗?尝试以下操作:
$employees = Employee::unique('locations')->values()->list('location')->toArray();
return view('page', compact('employees'));
然后在你看来:
@foreach($employees as $employee)
{{ $employee }}
@endforeach
在控制器中使用此查询
$employees = Employee::distinct()->list('location')->toArray();
return view('page', compact('employees'));
在视图中
@foreach($employees as $employee)
{{ $employee }}
@endforeach
我同意这里的其他答案,这段代码应该在控制器中。 你不应该在视图中做逻辑。
在控制器中执行:
$uniqueEmpLoc = $employee->unique('location')->values()->list('location')->toArray();
$employee = Employee::all();
Return view ('page', compact('employee', 'uniqueEmpLoc'));
您的代码不起作用的原因是定义$uniqueEmpLoc
的行被刀片解释为文本,而不是代码。
如果你真的想在视图中这样做,你需要将它包装在@php
标签中。
@php
$uniqueEmpLoc = $employee->unique('location')->values()->list('location')->toArray();
@endphp
@Foreach($uniqueEmpLoc as $empLoc)
{{ $empLoc }}
//this is select box used for search
@endforeach
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.