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.