【发布时间】:2017-12-04 13:44:14
【问题描述】:
当我循环一个结果集时,我遇到了一个问题,其中包含我正在 foreach 的关系。
这是目前的代码:
<?php
$deadlines = App\Deadlines::where('beginDatum', '<=', date("Y-m-d"))
->where('eindDatum', '>=', date("Y-m-d"))
->first();
$totalActivities = App\UserActivity::where('userid', Auth::id())
->where('deadline', '=', $deadlines->id)
->count();
if($totalActivities > 0) {
$activiteiten = \App\User::find(Auth::id());
foreach ($activiteiten->useractivities as $user_activity) {
if ($deadlines->id == $user_activity->deadline) {
print_r("<div class='col-md-4'><input type='text' value='$user_activity->datum' class='form-control'></div>");
foreach ($user_activity->activity as $activity) {
print_r("<div class='col-md-7'><input type='text' value='$activity->activiteit' class='form-control'></div>");
}
print_r("<div class='col-md-1'><input type='submit' class='btn btn-primary' value='Edit'></div>");
}
}
} else {
?>
<br/>U heeft nog geen activiteiten toegevoegd!
<?php
}
但是当 'user_activity' 表中存在重复的 'activityid' 时,它会出现一些奇怪的行为。比如……
|--------------------------------------| | date | userid | activityid | |--------------------------------------| | 2017-12-28| 1 | 1 | | 2017-11-30| 1 | 1 | |--------------------------------------|
它有两个相同的activityid,所以活动名称相同,但我不知道为什么它只显示重复活动的日期。当只有一个 activityid 条目时,它显示得很好: https://gyazo.com/11cc6828f97e7a191bf40c8b74448e83
【问题讨论】:
-
呃……从哪里开始……
-
假设这些是 Eloquent 模型,您不应该在用户活动和截止日期之间使用多对多关系吗?
-
你为什么要做
$deadlines = App\Deadlines而不是在命名空间下添加这些然后只运行$deadlines = Deadlines::where()? -
不是关于截止日期,而是关于活动
-
Laracasts 也是了解更多信息的好地方。