Home > Blockchain >  Foreach for courses sections and lessons
Foreach for courses sections and lessons

Time:12-25

I'm trying to count current course sections and then that section lessons and durability. this is my foreach

<div >
            @foreach($courses as $c)
            <p >
            @foreach($c->sections as $s)
                <span >
                    {{ $s->count('id') }} section
                </span>
                @endforeach
                @foreach($s->lessons as $l)
                <span >
                    {{ $l->count('id') }} lesson
                </span>
                <span >
                    {{ $l->count('durability') }} lesson durability
                </span>
                @endforeach
            </p>
            @endforeach
        </div>

and it's coming very wired. I think it's my foreach fault i'm getting

30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 30 section 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability 15 lesson 15 lesson durability

CodePudding user response:

<div >
    @foreach($courses as $c)
        <p >
            @foreach($c->sections as $s)
                <span >
                    {{ $s->count('id') }} section
                </span>
                @foreach($s->lessons as $l)
                    <span >
                    {{ $l->count('id') }} lesson
                </span>
                    <span >
                    {{ $l->count('durability') }} lesson durability
                </span>
                @endforeach
            @endforeach
        </p>
    @endforeach
</div>

this one should work. in you code, you used $s->lessons as $l outside the loops of sections. so, $s was actually working with the last object.

CodePudding user response:

If you want the total count for each course

You need these relations in place:

  • Lesson -> section() (belongTo)
  • Section -> course() (belongsTo)
<div >
    @foreach($courses as $course)
        <p >
            <span >
                {{ $course->sections()->count() }} section
            </span>
            <span >
                {{ Lesson::whereHas('section.course', function($cq) use ($course) {$cq->where('id', $course->id);})->count() }} lesson
            </span>
            <span >
                {{ Lesson::whereHas('section.course', function($cq) use ($course) {$cq->where('id', $course->id);})->sum('durability') }} lesson durability
            </span>

        </p>
    @endforeach
</div>

no need for loops other than the course one.

  • Related