Вход

yii2 подключение базы данных и основные операции над ней

Yii2: Работа с базой данных

В данной статье мы рассмотрим подключение базы данных к yii2 и основные операции над ней.

Подключение базы данных к сайту на Yii2

Для подключения базы данных к нашему сайту на yii2 нужно отредактировать файл «config/db.php»

1
2
3
4
5
6
7
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=yii2basic',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
];

В качестве параметра dbname указать имя подключаемой базы данных, username — пользователь базы данных и password — пароль от базы данных.

Запрос к базе данных

Для обращения к таблице базы данных требуется создать соответствующую модель, в которой будет указано имя таблицы. Создадим модель «models/City.php»

1
2
3
4
5
6
7
8
9
10
11
namespace app\models;
 
use yii\db\ActiveRecord;
 
class City extends ActiveRecord
{   
    public static function tableName()
    {
        return 'city'; //имя таблицы
    }
}

Теперь в соответствующем контроллере необходимо подключить нашу модель и сделать запрос на выборку данных из таблицы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
namespace app\controllers;
 
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
use app\models\City;
 
class MyController extends Controller
{
    public function actionIndex()
    {
		$this->layout = 'default_template'; //имя шаблона для данного контроллера
 
		// Возвращает массив всех занчений таблицы
		$mass = City::find()->asArray()->all();
 
		//возвращает массив состоящий из одной строки таблицы
		$mass2 = City::find()->asArray()->one();
 
		//возвращает отсортированный объект по полю таблицы name
		$mass3 = City::find()->orderBy('name')->all();
 
		// Вызывает соответствующий вид "main.php" и передаёт в него наши массив
		return $this->render('main', compact('mass ', 'mass2', 'mass3'));
 
		// Производит редирект на другой контроллер (например в случае обищки или исключения)
		//return Yii::$app->response->redirect(['site/index']);
    }
}

14 мая 2017 /

5524 Views /

8 комментариев
Ilya Web developer
Author

«Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.»Martin Golding