繁体   English   中英

Laravel 中的独特集合

[英]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。 请帮我解决这个问题。

您的代码中存在一些错误:

  1. 我认为compact(employee)行不通。 这不应该是compact('employee')吗?
  2. 在 Blade 中,根本不需要花括号。 删除它们。

尝试以下操作:

$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM