مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

نحوه ی دسترسی به پایگاه داده یا database ها در فریمورک Yii


در فریمورک Yii ، شی DAO مخفف Database Access Object یک API ، برای دسترسی به database فراهم می کند. همچنین آن به عنوان پایه و اساسی برای دیگر متد های دسترسی به پایگاه داده عمل می کند.متدهایی چون : active record و  query builder.

Yii DAO از پایگاه های زیر پشتیبانی می کند :

  • MySQL
  • MSSQL
  • SQLite
  • MariaDB
  • PostgreSQL
  • ORACLE
  • CUBRID

ایجاد Connection برای database

مرحله 1 - برای ایجاد connection برای پایگاه داده، شما باید یک نمونه از کلاس  yii\db\Connectionرا ایجاد کنید.

$mydb = new yii\db\Connection([
   'dsn' => 'mysql:host=localhost;dbname=mydb',
   'username' => 'username',
   'password' => 'password',
   'charset' => 'utf8',
]);

یک تمرین ساده می تواند پیکربندی یک DB connection در داخل component های برنامه باشد. به عنوان مثال، درقالب پایه ی برنامه، پیکربندی DB connection در فایل config/db.php قرار دارد. کد زیر بیانگر این مطلب می باشد.

<?php
   return [
      'class' => 'yii\db\Connection',
      'dsn' => 'mysql:host = localhost;dbname = helloworld',
      'username' => 'vladimir',
      'password' => '123574896',
      'charset' => 'utf8',
   ];
?>

مرحله 2 - برای دسترسی به DB connection می توانید از عبارات منظم یا expression استفاده کنید.

Yii::$app->db

برای پیکربندی یکDB connection ، شما باید DSN  مخفف Data Source Name خود را از طریق ویژگی dsn مشخص کنید. فرمت DSN برای databaseهای مختلف متفاوت است :

  • MySQL, MariaDB − mysql:host = localhost;dbname = mydb
  • PostgreSQL − pgsql:host = localhost;port = 5432;dbname = mydb
  • SQLite − sqlite:/path/to/db/file
  • MS SQL Server (via sqlsrv driver) − sqlsrv:Server = localhost;Database = mydb
  • MS SQL Server (via mssql driver) − mssql:host = localhost;dbname = mydb
  • MS SQL Server (via dblib driver) − dblib:host = localhost;dbname = mydb
  • CUBRID − cubrid:dbname = mydb;host = localhost;port = 33000
  • Oracle − oci:dbname = //localhost:1521/mydb

برای نمایش query های پایگاه داده ما به data نیاز داریم.

آماده سازی DB

مرحله 1 - ایجاد یک پایگاه داده جدید: پایگاه داده را می توان به دو روش زیر ایجاد نمود:

  • در ترمینال، دستور زیر را اجرا نمایید.

 

mysql -u root –p
  • ایجاد یک پایگاه داده جدید از طریق دستورزیر:

 

CREATE DATABASE helloworld CHARACTER SET utf8 COLLATE utf8_general_ci؛

 

مرحله 2 - connection پایگاه داده را در فایل config/db.php پیکربندی کنید. تنظیمات زیر برای سیستم مورد استفاده کنونی می باشد.

<?php
   return [
      'class' => 'yii\db\Connection',
      'dsn' => 'mysql:host = localhost;dbname = helloworld',
      'username' => 'vladimir',
      'password' => '12345',
      'charset' => 'utf8',
   ];
?>

مرحله 3 - داخل دایرکتوری ریشه، دستور ./yii migrate/create test_table را اجرا کنید. این فرمان یک database migration را برای مدیریت DB ایجاد می کند. فایل migration   باید در پوشه  migrations در ریشه پروژه قرار بگیرد.

مرحله 4 - فایل migration را (m160106_163154_test_table.php در مثال ما) به صورت زیر ویرایش کنید.

<?php
   use yii\db\Schema;
   use yii\db\Migration;
   class m160106_163154_test_table extends Migration {
      public function safeUp() {
         $this->createTable("user", [
            "id" => Schema::TYPE_PK,
            "name" => Schema::TYPE_STRING,
            "email" => Schema::TYPE_STRING,
         ]);
         $this->batchInsert("user", ["name", "email"], [
            ["User1", "user1@gmail.com"],
            ["User2", "user2@gmail.com"],
            ["User3", "user3@gmail.com"],
            ["User4", "user4@gmail.com"],
            ["User5", "user5@gmail.com"],
            ["User6", "user6@gmail.com"],
            ["User7", "user7@gmail.com"],
            ["User8", "user8@gmail.com"],
            ["User9", "user9@gmail.com"],
            ["User10", "user10@gmail.com"],
            ["User11", "user11@gmail.com"],
         ]);
      }
      public function safeDown() {
         $this->dropTable('user');
      }
   }
?>

migration بالا یک جدول به نام user  با چنیین فیلدهایی ایجاد می کند: id, name, email. همچنین تعدادی user نیز به جدول مان اضافه می نماید.

مرحله 5 - داخل ریشه پروژه دستور ./yii migrate را اجرا کنید. تا migraton به Database مان اعمال شود.

مرحله 6 - حالا ما باید یک مدل برای جدول user مان ایجاد کنیم. برای سادگی کار، ما قصد داریم از ابزار تولید کد Gii استفاده کنیم.

این آدرس را باز کنید: url: http://localhost:8080/index.php?r=gii. سپس بر روی دکمه “Start” زیر هدر “Model generator” کلیک کنید. نام جدول را user و نام کلاسِ مدل را MyUser بگذارید، روی دکمه “Preview” کلیک کنید و در نهایت روی دکمه “Generate” کلیک نمایید.

مدل MyUser باید در دایرکتوری models  ظاهر شود.

 

فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

  پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید