Laravel 集合/刀片 - 显示独特的行

问题描述 投票:0回答:0

不太确定如何提出这个问题,所以我希望它代表了我的问题。我想要实现的是,在我网站的仪表板上为每个用户显示下周的膳食列表。在这个例子中,将是一日三餐。

我的数据库如下所示:

$table->id();
$table->foreignId('user_id')->constrained('users');
$table->enum('day', ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']);
$table->foreignId('meal_id')->nullable()->constrained('food_meals');
$table->enum('type', ['breakfast', 'lunch', 'dinner']);
$table->string('slug')->unique();
$table->timestamps();

我的

User model
中有一个简单的关系设置:

public function userMeals()
{
    return $this->hasMany(Meal::class);
}

返回到我的仪表板的数据是这样的:

$meals = auth()->user()->userMeals()->get();

当循环查看刀片中的数据时,我当然会每天显示三次:

但我想要的当然是这个:

在我的数据库中,我存储这样的数据:

因此,根据膳食类型,每天 3 个条目。

基本上我的问题是这样的。我可以通过此设置将数据显示在我的刀片文件中,就像第二张图片中的那样,以便我可以在控制器中编辑数据吗?或者这是一个糟糕的设计,我应该采取不同的方式吗?

PS。例如,当我这样做时,它可以工作,但我永远无法显示早餐、午餐和晚餐的初始数据,因为每天的两个条目将丢失:

auth()->user()->userMeals()->get()->unique('day')
php laravel loops laravel-blade unique
© www.soinside.com 2019 - 2024. All rights reserved.