1218 formulir yii 20 memperkenalkan konsep field

  • No School
  • AA 1
  • 173

This preview shows page 13 - 16 out of 173 pages.

1.2.18 Formulir Yii 2.0 memperkenalkan konsep field untuk membangun formulir menggu- nakan yii\widgets\ActiveForm . Field adalah wadah yang terdiri dari label,
Image of page 13
10 BAB 1. PENGANTAR masukan, pesan kesalahan, dan atau teks petunjuk. Field diwakili sebagai objek ActiveField . Menggunakan field, Anda dapat membangun formulir yang lebih bersih dari sebelumnya: <?php $form = yii\widgets\ActiveForm::begin(); ?> <?= $form->field($model, ’username’ ) ?> <?= $form->field($model, ’password’ )->passwordInput() ?> <div class= "form-group" > <?= Html::submitButton( ’Login’ ) ?> </div> <?php yii\widgets\ActiveForm::end(); ?> Silakan merujuk ke bagian Membuat Formulir untuk lebih jelasnya. 1.2.19 Query Builder Dalam 1.1, query builder itu tersebar di antara beberapa kelas, termasuk CDbCommand , CDbCriteria , dan CDbCommandBuilder . Yii 2.0 merepresentasikan se- buah query DB sebagai objek Query yang dapat berubah menjadi sebuah pernyataan SQL dengan bantuan QueryBuilder . Sebagai contoh: $query = new \yii\db\Query(); $query->select( ’id, name’ ) ->from( ’user’ ) ->limit(10); $command = $query->createCommand(); $sql = $command->sql; $rows = $command->queryAll(); Yang terbaik dari semua itu adalah, query builder juga dapat digunakan ketika bekerja dengan Active Record . Silakan lihat bagian Query Builder untuk lebih jelasnya. 1.2.20 Active Record Yii 2.0 memperkenalkan banyak perubahan Active Record . Dua yang paling jelas melibatkan query builder dan penanganan permintaan relasional. Kelas CDbCriteria di 1.1 digantikan oleh yii\db\ActiveQuery di Yii 2. Karena kelas tersebut adalah perluasan dari yii\db\Query , dengan demi- kian mewarisi semua metode query builder. Anda bisa memanggil yii\db \ActiveRecord::find() untuk mulai membangun query: // Untuk mengambil semua customer yang *active* diurutkan sesuai ID: $customers = Customer::find() ->where([ ’status’ => $active]) ->orderBy( ’id’ ) ->all(); Untuk menyatakan suatu relasi, hanya dengan menentukan metod getter yang mengembalikan sebuah objek ActiveQuery . Nama properti yang di- definisikan oleh getter akan menjadi nama relasi. Misalnya, kode berikut
Image of page 14
1.2. UPGRADE DARI VERSI 1.1 11 mendeklarasikan sebuah relasi orders (di 1.1, Anda akan harus menyatakan relasi di tempat relations() ): class Customer extends \yii\db\ActiveRecord { public function getOrders() { return $this->hasMany( ’Order’ , [ ’customer_id’ => ’id’ ]); } } Sekarang Anda dapat menggunakan $customer->orders untuk mengakses pe- sanan pelanggan dari tabel terkait. Anda juga dapat menggunakan kode berikut untuk melakukan permintaan relasi secara cepat dengan kondisi per- mintaan yang disesuaikan: $orders = $customer->getOrders()->andWhere( ’status=1’ )->all(); Ketika ingin memuat relasi, Yii 2.0 melakukannya secara berbeda dari 1.1. Secara khusus, di 1.1 query JOIN akan dibuat untuk memilih data utama dan data relasi. Di Yii 2.0, dua pernyataan SQL dijalankan tanpa menggunakan JOIN: pernyataan pertama membawa kembali data utama dan yang kedua membawa kembali data relasi dengan menyaring sesuai kunci primer dari data utama.
Image of page 15
Image of page 16

You've reached the end of your free preview.

Want to read all 173 pages?

  • Fall '19

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Ask Expert Tutors You can ask You can ask ( soon) You can ask (will expire )
Answers in as fast as 15 minutes