ホームページ >バックエンド開発 >PHPチュートリアル >yii2で「前の記事、次の記事」機能を実装するコード例

yii2で「前の記事、次の記事」機能を実装するコード例

高洛峰
高洛峰オリジナル
2017-02-06 16:23:481295ブラウズ

最近、簡単な記事の詳細ページを作成しました。分析後に、ページの下部に前の記事と次の記事のボタンを追加する必要があります。

現在のIDを1加算または減算することを考え始めましたが、IDの一部が失われると間違っていることを考慮して、現在の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 中国語 Web サイトをサポートしていただければ幸いです。

「前の記事、次の記事」機能を実装する yii2 のその他のコード例については、PHP 中国語 Web サイトの関連記事に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。