Урок 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Программы на заказ
Отзывы
Контакты