在Laravel中,您可以使用groupBy()
方法按照一个对象的值分组。下面是一个包含代码示例的解决方法:
假设我们有一个名为User
的模型,并且想要按照用户的角色进行分组。首先,在User
模型中定义一个role
属性和一个groupByRole()
方法:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $fillable = ['name', 'role'];
public function groupByRole()
{
return $this->groupBy('role');
}
}
然后,在您的控制器中使用groupByRole()
方法来按照角色分组用户:
namespace App\Http\Controllers;
use App\Models\User;
class UserController extends Controller
{
public function index()
{
$users = User::all()->groupByRole();
return view('users.index', compact('users'));
}
}
最后,在视图文件中循环遍历分组的用户:
@foreach($users as $role => $usersByRole)
{{ $role }}
@foreach($usersByRole as $user)
- {{ $user->name }}
@endforeach
@endforeach
这样,用户将按照角色分组,并在视图中进行展示。