Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Yii
Code

Paano I-programa ang Yii2: Pagtatrabaho sa Database at Aktibong Talaan

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called How to Program With Yii2.
How to Program With Yii2: Exploring MVC, Forms and Layouts
How to Program With Yii2: Working With the Database and Active Record

Tagalog (Wikang Tagalog) translation by Robert Alexander (you can also view the original English article)

Final product image
What You'll Be Creating

Kung ika’y nagtatanong, “Ano ang Yii?” Tignan ang nauna kong pagtuturo: Panimula sa Yii Framework, kung saan ay sinisiyasat ang benepisyo ng Yii at kabilang dito ang pangkalahatang-ideya kung ano ang bago sa Yii 2.0, nilabas noong Oktubre 12, 2014.

Sa Pag-programa ng Yii2: Pagsisimula, kami ay nag-set up ng Yii2 na lokal lamang, bumuo ng Hello World application, nag-set up ng remote server at gumamit ng GitHub upang palawakin ang ating code. Sa ikalawang parte, natutunan natin ang tungkol sa pagpapatupad ng Model View Controller architecture ng Yii’s at kung paano gumawa ng mga pahina ng web at forms na mangongolekta at magpapatunay ng datos. Sa pagtuturong ito, gagamitin natin ang database at kakayahan ng aktibong talaan para awtomatikong maggawa ang code generation para sa basic web application.

Para sa mga halimbawang ito, ipagpapatuloy natin isipin na tayo ay gagawa ng balangkas para sa pag-paskil ng simpleng status updates, hal. ang ating mini-twitter.

1. Paglikha ng Iyong Database

Una, kailangan natin lumikha ng database sa ating development environment. Ginagawa ko ito sa pamamagitan ng MAMP’s PHPMyAdmin web user interface. Mag-navigate sa PHPMyAdmin, hal. http://localhost:8888/MAMP/index.php?page=phpmyadminpiliin ang Databases tab at lumikha ng database na tatawaging hello:

MAMP PHPMyAdmin Create Database

Maari ka rin gumamit ng MySQL command line interface.

Ngayon, kami ay magbibigay ng database credentials sa Yii’s database configuration file. Buksan /hello/config/db.php at ibigay ang iyong MySQL database credentials. Ganito ang itsura nang sa akin:

Ngayon, maglilikha tayo ng ating unang database migration. Ang migration ay nagbibigay ng programmatic na paraan upang makalikha at mag-update ng database schemas. Ito ay sadyang makakatulong kung ika’y nagpapatakbo ng maramihang servers o sa development environments. Tinatanggal nito ang kahirapan sa pag-angkat ng SQL scripts.

Para sa ating halimbawa ng mga coding, maaari mong gamitin ang Git repository mula sa huling pagtuturo upang sumunod na lang,o maari kang mag-downlod ng na-kumpletong repository dito.

Lumikha ng Migration

Ang ating unang migration ay lilikha ng Status table. Buksan ang Terminal at ipasok ang mga sumusunod:

Ganito dapat ang itsura, kapag natapos mo na:

Yii Migration Create

Kapag iyong binukasan \hello\migrations, makikita mo ang file na may pangalan na katulad sa m141201_013120_create_status_table.php. Ganito dapat ang itsura nyan kapag binuksan.

Ito ang default migration code na bigay ng Yii. Sunod, i-update natin ito upang ibigay ang mga patlang na kailangan natin.

Pagbuo ng Status Table

Ang ating Status table ay pag-iimbakan ng mga texto na mensahe at tutukuyin kung ang isang paskil ay pribado o publiko. Bawat hanay ay magkakaroon ng id, lumikha at mag-update ng patlang ng oras.

I-update ang iyong migration code sang-ayon sa amin:

Punahin kung paano namin idinagdag ang mga depinisyon para sa mga patlang na ating kailangan gaya ng mensahe, permiso, created_at, at updated_at.

I-run ang Migration

Para sabihin sa Yii na lumikha ng table, kailangan natin i-run ang migration. Madali lan. Mula sa Terminal gain, we run ./yii migrate/up:

Kung nag-browse sa table gamit ang PHPMyAdmin, may makikita ka dapat na parang ganito:

PHPMyAdmin View the Status Table

Ngayon na nakalikha na tayo ng database table, maari na natin simulan gamitin ang Gii, Yii’s powerful scaffolding generator, para ma-automate ang lahat ng model view controller code.

2. Gamit ang Gii: Ang Yii Code Generator

Gii ay ang Yii’s scaffolding code generator. Ginagamit nito ang kaalaman ng iyong database schema para makalikha ng mahusay na sulat, default model view controller code para sa iyong aplikasyon. Maaring magawa ng Gii na masalin ang database schema sa isang karaniwan na gumaganang web application sa ilan minuto lamang. Ito ay hindi kapani-paniwalang malakas. Hayaan mong ipakita ko sa iyo kung paano ito gumagana.

Pagbuo ng Modelo

Sa Gii, atin simulan sa pamamagitan ng pagbuo ng modelo ayon sa bawat database table na ating nilikha. Para sa aming halimbawa, gagamitin natin ang Status table.

Upang simulan gamitin ang Gii, i-navigate ang iyong web application at /gii, hal. http://localhost:8888/hello/web/gii. May makikita ka na katulad nito:

Yiis Gii Scaffolding Generator

I-klik ang Model Generator, at ipasok ang status sa patlang ng Table Name:

Gii Model Generator

Kapag nag-klik ka sa Preview, ipapakita sa iyo kung anong files ang bubuuin. Dahil sa mayroon na tayong Status.php model file mula sa huling pagtuturo, i-klik ang Overwrite. Pagkatapos, i-klik ang Generate.

Gii Model Generator Preview

Ang mga resulta ay magiging ganito:

Gii Model Code Generated

Buksan ang /hello/models/Status.php file at makikita mo ang pangunahing patunay na panuntunan at form attributes kung saan ay binuo ng Yii para sa atin:

Pagbuo ng Web Interface

Ngayon, oras na para gamitin ang Gii para buuin ang controller at views para sa Status table. Bumalik sa Gii home page at i-klik ang CRUD Generator, http://localhost:8888/hello/web/gii/crud:

Para sa Model Class, itala ang app\models\Status (Ang mga tala na ito ay case sensitive). Para sa Search Model Class, magpasok app\models\StatusSearch. Para sa Controller Class, magpasok app\controllers\StatusController. Dapat itong magmukhang ganito:

Yiis Gii CRUD Generator

I-klik ang Preview. Makikita mo ang mga sumusunod-siguraduhin na click Overwrite ulit dahil sa mayroon tayong lumang files mula sa huli nating pagtuturo na kailangan i-update:

Yiis Gii CRUD Generator Preview

Kapag na-klik mo ang Generate, makikita mo ang lahat ng controller at view files generated:

Yiis Gii CRUD Generated Code

Ang mga pahina ng Default CRUD

I-navigate ang iyong browser sa http://localhost:8888/hello/web/status, at makikita mo ang generated CRUD index page. Gayon wala pa namang anuman mga hanay sa database, ito’y lumalabas na walang laman.

Yiis Gii CRUD Generated Index Grid

Ngayon, mag-klik sa Create Status at makikita mo ang default Create Status Form na nilikha ng Gii:

Yii Default Form for Status Table

Lubhang kahanga-hanga kung gaano kabilis nilikha ng Gii ang code para sa atin. Sunod, ating i-customize ang scaffolding code para magawa nitong gumana para sa atin.

3. Pag-customize ng Ating Code

Pag-customize ng Form View

Ating linisin ang form. Sa /hello/views/Status/_form.php, tanggalin ang nalikha at na-update na fields:

Palitan ang permissions field ng may drop-down list code na nilikha natin sa ikalawang parte ng seryeng ito:

Kailangan natin ilagay ang getPermissions function din muli sa model. I-edit /hello/models/Status.php. Ibalik ang constant definitions at permissions function:

Ang iyong bagong Status form ay dapat magmukhang ganito:

Revised Status Create Form

Kailangan natin isaayos ang controller ng konti para gawin na ang form ay ma-save nang tama.

Pag-customize sa Controller

Sa /hello/controllers/StatusController.php, palitan ang actionCreate method ng code na ito:

Kapag ang form ay naipaskil na, mano-mano nating i-set ang created at updated_at fields, pagkatapos ay i-save natin ang datos sa database.

Kapag na-save mo na ang iyong unang status update, makikita mo ang mga sumusunod na view page:

Default Status View

Pagsasaayos ng Layout

Ating isaayos muli ang navbar upang hindi ito mag-drop down para sa Status pero lilipat diretso sa Status index page. I-edit /hello/views/layouts/main.php at palitan ng ang Nav::widget code nang ganito:

Ang Grid View

Kapag ikaw ay babalik sa Status index view, makikita mo ang Yii2 Grid na puno ng datos:

Default Grid View with Data

Ang code na nag-generate ng pahinang ito ay sa /hello/views/status/index.php:

Kung sinubukan mo ang column sorting at view, i-update at burahin ang icons, makikita mo na ang Gii ay bumuo din ng mga tampok para sa lahat ng pag-andar nito.

Kung kaya’t sa ilan minuto lamang, nalikha natin ang schema para sa ating database, at nag-generate ng model at lahat ng web application code na kinakailangan para sa basic application. Sana ay nakita mo ang kahanga-hangang kakayahan ng Yii’s code generation kagaya ko.

Ano ang Susunod?

Sunod, Ipapakita ko sa iyo kung paano magbuo ng pag-rehistro ng gumagamit at kakayahang mag-login sa ating application para ma-set up natin ang pinagsamang kaugnayan sa pagitan ng status posts at specific users.

Kung nais mong malaman kung kailan ang susunod na dating ng pagtuturo sa Yii2, sundan ako @reifman sa Twitter o tignan ang aking Tuts+ pahina ng tagapagturo. Ang aking pahina ng tagapagturo ay kasama ang lahat ng mga artikulo mula sa seryeng ito sa sandaling ito ay malatha.

Kaugnay na Links

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.