Home >Backend Development >PHP Tutorial >[My PHP Journey] YII Framework Learning 03 Connecting to the Database (Using ActiveRecord)

[My PHP Journey] YII Framework Learning 03 Connecting to the Database (Using ActiveRecord)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-07-29 09:02:07848browse

Prepare a data table at will

<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>

Configure Yii database link

First of all, you must know that ActiveRecord is implemented using PDO_MySQ, so you must make sure that your plug-in is easy to use. Then modify the framework directory/config/db.php as follows:

<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>

Create an active record object (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>

Nothing is written in this class. We use this class to tell Yii which table we want to extract from data.

Simple controller

<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>

The pagination in the code is used for paging. Of course, you don’t need to write it if there is no need. The deletion function seems to be written irregularly. . .

Create a view

<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>

Combined LinkPager and Pagination, and used Yii to complete query and paging.

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

The above introduces [My PHP Journey] YII Framework Learning 03 Connecting to the Database (Using ActiveRecord), including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn