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)

WBOY
Release: 2016-07-29 09:02:07
Original
820 people have browsed it

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>
Copy after login

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>
Copy after login

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>
Copy after login

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>
Copy after login

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>
Copy after login

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.

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template