私は、結果セット内でリレーションを設定してループしているときに、Laravel foreachモデルの結果セットをループすると、奇妙な結果が戻されます
これは、現在のコードです:
$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());
//dd($activiteiten->useractivities);
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があるときには、いくつかの奇妙な行動を持っています。たとえば、次のようになります。
| -------------------------------------- |
|日付|ユーザーID |アクティビティID |
| -------------------------------------- |
| 2017-12-28 | 1 | 1 |
| | 2017-11-30 | 1 | 1 |
| -------------------------------------- |
アクティビティの名前は同じですが、アクティビティの名前は同じですが、重複アクティビティの日付のみが表示される理由はわかりません。https://gyazo.com/11cc6828f97e7a191bf40c8b74448e83
Uhhhh ..どこから始めるのです... – Option
これらはEloquentモデルであると仮定して、ユーザーの活動と締め切り間に多対多の関係を使用すべきではありませんか? – Uthr
'$ deadlines = App \ Deadlines'を実行していて、名前空間の下にこれらを追加せず、' $ deadlines = Deadlines :: where() 'を実行するのはなぜですか? – Option