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

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

高洛峰
リリース: 2023-03-05 13:10:01
オリジナル
1328 人が閲覧しました

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

現在の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 サイトの関連記事に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート