ホームページ > バックエンド開発 > PHPチュートリアル > [My PHP Journey] YII Framework Learning 03 データベースへの接続 (ActiveRecord の使用)

[My PHP Journey] YII Framework Learning 03 データベースへの接続 (ActiveRecord の使用)

WBOY
リリース: 2016-07-29 09:02:07
オリジナル
818 人が閲覧しました

データテーブルを自由に準備する

<code><span><span>CREATE</span><span>TABLE</span><span>`entry`</span> (
    <span>`id`</span><span>INT</span>(<span>11</span>) <span>NOT</span><span>NULL</span> AUTO_INCREMENT,
    <span>`value`</span><span>VARCHAR</span>(<span>12</span>) <span>NULL</span><span>DEFAULT</span><span>NULL</span>,
    <span>PRIMARY</span><span>KEY</span> (<span>`id`</span>)
)
<span>COLLATE</span>=<span>'utf8_general_ci'</span>
ENGINE=InnoDB
AUTO_INCREMENT=<span>12</span>;</span></code>
ログイン後にコピー

Yii データベースリンクを設定する

まず第一に、ActiveRecord は PDO_MySQ を使用して実装されているため、プラグインが使いやすいことを確認する必要があります。 次に 框架目录/config/db.php を次のように変更します。

<code><span>return</span> [
    <span>'class'</span> => <span>'yii\db\Connection'</span>,
    <span>'dsn'</span> => <span>'mysql:host=localhost;dbname=test'</span>,
    <span>'username'</span> => <span>'root'</span>,
    <span>'password'</span> => <span>'root'</span>,
    <span>'charset'</span> => <span>'utf8'</span>,
];</code>
ログイン後にコピー

アクティブ レコード オブジェクト (ActiveRecord) を作成します。

<code><span>namespace</span><span>app</span>\<span>models</span>;
<span>use</span><span>yii</span>\<span>db</span>\<span>ActiveRecord</span>;
<span><span>class</span><span>Entry</span><span>extends</span><span>ActiveRecord</span> {</span>}</code>
ログイン後にコピー

このクラスには、どのテーブルからデータを抽出するかを Yii に指示するために何も書かれていません。

簡易コントローラー

<code><span>namespace</span><span>app</span>\<span>controllers</span>;

<span>use</span><span>yii</span>\<span>web</span>\<span>Controller</span>;
<span>use</span><span>app</span>\<span>models</span>\<span>Entry</span>;
<span>use</span><span>yii</span>\<span>data</span>\<span>Pagination</span>;
<span><span>class</span><span>EntryController</span><span>extends</span><span>Controller</span> {</span><span>public</span><span><span>function</span><span>actionGetAll</span><span>()</span> {</span><span>$query</span> = Entry::find();
        <span>$pagination</span> = <span>new</span> Pagination([
                <span>'defaultPageSize'</span> => <span>5</span>,
                <span>'totalCount'</span> => <span>$query</span>->count(),
        ]);

        <span>$entries</span> = <span>$query</span>  ->  offset(<span>$pagination</span>->offset)
                                        ->  limit(<span>$pagination</span>->limit)
                                        ->  all();

        <span>return</span><span>$this</span>->render(<span>'showEntry'</span>, [
            <span>'entries'</span>           => <span>$entries</span>,
            <span>'pagination'</span>    => <span>$pagination</span>,
        ]);
    }

    <span>public</span><span><span>function</span><span>actionDelete</span><span>()</span> {</span>
        Entry::deleteAll(<span>'value=\'***\''</span>);

        <span>return</span><span>self</span>::actionGetAll();
    }

}</code>
ログイン後にコピー

コード内のページネーションはページングに使用します。 もちろん、必要がなければ書く必要はありません。削除機能は不規則に書かれているようです。 。 。

ビューを作成します

<code><span><?php</span><span>use</span><span>yii</span>\<span>helpers</span>\<span>Html</span>;
<span>use</span><span>yii</span>\<span>widgets</span>\<span>LinkPager</span>;
<span>?></span><h1>Entries : </h1>
<ul>
<span><?php</span><span>foreach</span> (<span>$entries</span><span>as</span><span>$entry</span>)  { <span>?></span>
    <li><span><?</span>= Html::encode(<span>"$entry->id : $entry->value"</span>) <span>?></span></li>
<span><?php</span> } <span>?></span>
</ul>

<span><?</span>= LinkPager::widget([
        <span>'pagination'</span> => <span>$pagination</span>,
]) <span>?></span></span></code>
ログイン後にコピー

LinkPagerとページネーションを組み合わせ、Yiiを使用してクエリとページングを完了します。

')​​.addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

上記は、[私の PHP ジャーニー] YII フレームワークの学習 03 データベースへの接続 (ActiveRecord の使用) を、関連コンテンツも含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

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