На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Урок 3. Работа с базой данных в Yii2



Давайте подключим базу данных. Сначала нам нужна база данных. Создайте её, а затем вернитесь к этому уроку. В XAMPP это легко сделать с помощью phpmyadmin (http://localhost/phpmyadmin). Когда у вас будут учетные данные базы данных в руках, отправляйтесь в config/db.php файл и добавьте правильные значения

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;port=3307;dbname=wf_user',
    'username' => 'wf_user',
    'password' => 'dVPYewqQqCzTD0xO',
    'charset' => 'utf8',

    // Schema cache options (for production environment)
    //'enableSchemaCache' => true,
    //'schemaCacheDuration' => 60,
    //'schemaCache' => 'cache',
];
Мое имя базы данных - это wf_user. Имя пользователя - wf_user, и пароль “12345”. Так что наша база данных настроена правильно.

Проверка соединения

Вы можете проверить, правильно ли подключена ваша база данных. Давайте запустим запрос. У нас есть таблица стран в нашей базе данных, поэтому мы будем извлекать данные из нее.

В DashboardController добавьте следующий код

use Yii;

public function actionTest(){
    $results = Yii::$app->db->createCommand('SELECT * FROM countries LIMIT 5')->queryAll();
    var_dump($results);
}
Мы используем функцию Yii::$app->db->createCommand() для получения результатов из базы данных.

Мы используем var_dump для отображения возвращаемого массива.

Кроме того, вам может потребоваться отредактировать SQL-запрос в соответствии с таблицами базы данных.



Не забудьте поместить символ use Yii в верхней части экрана DashboardControlller.php файла.

Создаем модель

В Yii можно создавать модели, используя инструмент генерации кода, называемый GII. Давайте создадим модель.

Перейдите на http://localhost/web/gii/model для начала.

После того как вы выбрали правильные параметры, вы можете сгенерировать модель.



Перейдите в каталог models, чтобы просмотреть только что созданный класс.

Поиск всех записей из базы данных

Давайте получим все наши страны из базы данных.

В нашем DashboardController.php мы можем создать маршрут стран. Затем мы используем функцию find() в нашей модели, чтобы получить все страны из базы данных, как показано ниже.

use app\models\Countries;

public function actionCountries(){
    $countries = Countries::find()->all(); // get all the countries
    foreach ($countries as $country){
        echo $country->name . '<br>';
    }
}
Обратите внимание на наш формат

Model::find()->all() // 
Получение одной записи из базы данных

Давайте вместо этого получим одну запись из базы данных по первичному ключу.

public function actionCountries(){
    $countries = Countries::findAll(2);
    foreach ($countries as $country){
        echo $country->name . '<br>';
    }
}
Выше мы используем функцию Model::findAll.

Использование запроса where

Давайте найдем страну на основе названия страны. в наш DashboardController мы можем добавить следующий код

public function actionCountries(){
    $countries = Countries::find()->where(['name'=>'Argentina'])->all();
    foreach ($countries as $country){
        echo $country->id . '<br>';
    }
}
Мы используем функцию where для поиска id страны, равного Argentina.

Поиск записей с помощью запроса like

Мы можем использовать подобный запрос, как показано ниже.

public function actionCountries(){
    $countries = Countries::find()->where(['like','name',"E"])->all();
    foreach ($countries as $country){
        echo $country->name . '<br>';
    }
}
Миграции

Миграции используются для управления нашей базой данных из нашего приложения.

Выполните следующую команду, чтобы создать миграцию для таблицы notes.

php yii migrate/create notes_table
Это создаст файл в каталоге миграций. Суффикс файла notes_table.

Сначала нам нужно использовать класс Schema, поэтому мы делаем это

use yii\db\Schema;
Теперь в нашей функции safeUp мы добавляем код для нашей таблицы

public function safeUp()
{
    $this->createTable('yii_notes',[
       'id' => Schema::TYPE_PK,
       'title' => Schema::TYPE_STRING,
        'content' => Schema::TYPE_TEXT
    ]);
}
При этом будет создана таблица с идентификатором первичного ключа, а также полями заголовка и содержимого.

Чтобы запустить миграцию, мы запускаем следующую команду

php yii migrate
Эта команда выполнит все оставшиеся миграции. Итак, теперь у нас есть таблица заметок.



Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, yii2, php, фреймворки, уроки по yii2





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




600 человек в день
Добрая сказка и немного пропаганды


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.