>백엔드 개발 >PHP 튜토리얼 >yii2에서 '이전 기사, 다음 기사' 기능을 구현하는 코드 예

yii2에서 '이전 기사, 다음 기사' 기능을 구현하는 코드 예

高洛峰
高洛峰원래의
2017-02-06 16:23:481325검색

최근 단답형 기사 세부정보 페이지를 만들었는데 페이지 하단에 이전 기사 버튼과 다음 기사 버튼을 추가해야 하는데, 분석 후 가장 기본적인 것은 기사 제목과 ID(매개변수)입니다. .

처음에는 현재 아이디에 1을 더하거나 빼볼까 생각했는데, 아이디의 일부가 없어지면 잘못될까봐 현재 아이디보다 큰 레코드와 작은 레코드를 각각 조회하여 다음으로 제한했습니다. 하나, 그래서 다음 코드를 생각해 냈습니다.

코드는 다음과 같으니 틀리면 말씀해주세요.

컨트롤러에서

//查询上-篇文章
    $prev_article = 你的模型::find()
      ->andFilterWhere([&#39;<&#39;, &#39;id&#39;, $id])
      ->andFilterWhere([其他条件)
      ->orderBy([&#39;id&#39; => SORT_DESC])
      ->limit(1)
      ->one();
    //查询下-篇文章
    $next_article = 你的模型::find()
      ->andFilterWhere([&#39;>&#39;, &#39;id&#39;, $id])
      ->andFilterWhere(其他条件)
      ->orderBy([&#39;id&#39; => SORT_ASC])
      ->limit(1)
      ->one();
 
 
    $model[&#39;prev_article&#39;] = [
      &#39;url&#39; => !is_null($prev_article) ? Url::current([&#39;id&#39;=>$prev_article->id]) : &#39;javascript:;&#39;,
      &#39;title&#39; => !is_null($prev_article) ? $prev_article->title : &#39;没有了&#39;,
    ];
 
    $model[&#39;next_article&#39;] = [
      &#39;url&#39; => !is_null($next_article) ? Url::current([&#39;id&#39;=>$next_article->id]) : &#39;javascript:;&#39;,
      &#39;title&#39; => !is_null($next_article) ? $next_article->title : &#39;没有了&#39;,
    ];
 
    return $this->render(&#39;view&#39;, 
      &#39;model&#39; => $model, 
    );

뷰에서

<div class="left">
    <p>上一篇:
      <a href="<?=$model[&#39;prev_article&#39;][&#39;url&#39;]?>">
        <?=$model[&#39;prev_article&#39;][&#39;title&#39;]?>
      </a>
    </p>
  </div>
  <div class="right">
    <p>下一篇:
      <a href="<?=$model[&#39;next_article&#39;][&#39;url&#39;]?>">
        <?=$model[&#39;next_article&#39;][&#39;title&#39;]?>
      </a>
    </p>
  </div>

위 내용은 이 글의 내용입니다. 모든 내용은 모든 분들의 학습에 도움이 되길 바라며, PHP 중국어 홈페이지도 많은 응원 부탁드립니다.

"이전 기사, 다음 기사" 기능을 구현한 yii2의 더 많은 코드 예제를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.