1

我正在使用 Laravel 8 开发一个论坛项目,在这个项目中,我制作了一个页面来获取所有带有特定标签的问题。这是执行此操作的方法:

public function tag($name)
    {
        $tag = \App\Models\Tag::findOrFail($name);
        return view('tag',[
            'single' => $tag
        ]);
    }

然后在里面tag.blade.php

@foreach($single->questions as $one)
  ...
@endforeach

但是现在我需要为这个页面添加分页,所以如果问题不仅仅是自定义数字,他们可以导航到其他页面。

事实上,我已经在我的另一个页面上添加了分页,它显示了所有的问题:

public function allQuestions()
    {
        $all = Question::latest()->paginate(20);

        return view('questions.allquestions',[
            'all' => $all
        ]);
    }

但我真的不知道如何将此功能添加到tag()方法中。

因此,如果您知道如何添加此分页,请告诉我...

我真的很感激你们的任何想法或建议。

提前致谢。

4

1 回答 1

1

对此有2 种选择

第一选择:

public function tag($name)
    {
        $tag = \App\Models\Tag::findOrFail($name);
        $questions = $tag->question()->paginate(10);
        return view('tag',[
            'single' => $tag, 'questions' => $questions
        ]);
    }

然后,在您看来,您可以循环浏览这些问题。

@foreach ($questions as $question)
    ... fill this
@endforeach

{!! $questions->render() !!}

第二选择:

public function tag($name)
    {
        $tag = \App\Models\Tag::findOrFail($name);
        $tag->setRelation('questions',$tag->questions()->paginate(10));
        return view('tag',[
            'single' => $tag
        ]);
    }

然后,在您看来,您可以循环浏览这些问题。

@foreach ($single->questions as $question)
    ... fill this
@endforeach
于 2021-04-24T16:43:48.927 回答