不太确定如何提出这个问题,所以我希望它代表了我的问题。我想要实现的是,在我网站的仪表板上为每个用户显示下周的膳食列表。在这个例子中,将是一日三餐。
我的数据库如下所示:
$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')