![]() |
Урок 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда. ![]() |
Мои услуги
|
© upread.ru 2013-2022 При перепечатке активная ссылка на сайт обязательна. |