/**
* Ваш класс ActiveRecord описывающий таблицу содержащую поле с типом SET
*
* @property string $communication Название поля в таблице хранящее SET-значения
* @property string[] $communicationArr Атрибут который будет обрабатывать все значения в виде массива
*/
class MyAR extends \yii\db\ActiveRecord
{
/**
* Формирование правил валидации атрибутов
*/
public function rules()
{
return [
// Ваши правила валидации атрибутов
[
// правило валидации для поля типа SET
'communication',
'string'
]
];
}
/**
* Формирование списка безопастных атрибутов
*/
public function scenarios()
{
return [
$this::SCENARIO_DEFAULT => [
// Список атрибутов которые можно загружать через метод load
'communicationArr'
] // атрибут с которым будем работать как с массивом
];
}
/**
* Геттер свойства сommunicationArr
*/
public function getCommunicationArr()
{
return explode(',', $this->communication);
}
/**
* Cеттер свойства сommunicationArr
*/
public function setCommunicationArr($value)
{
$this->communication = is_array($value) ? implode(',', $value) : '';
}
}
Отсутствует на packagist, подключить через composer я его не могу.
{
"name": "MyApp",
"description": "MyApp",
"homepage": "",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "stable",
"require": {
// список ваших расширений
},
"require-dev": {
// список ваших расширений
},
"repositories": [
{
"type": "git",
"url": <ссылка на Ваш репозиторий>
},
],
}
Вот я хочу сделать класс(сущность) для регистрации, статистика на сайте
Могу ли я делать их отдельно(в другом проекте в отдельном файле), и потом вставить в yii2 и что бы они сразу так же заработали?
Рулесы в каждой модели отдельно для ихних рядков в бд? или можно все в одной этой модели ?
И как сохранять собственно данные, типа через Эта модель->связь ->save() прокатит ?
Тоесть я хочу заполнить с одной формы все таблицы за раз, ясное дело что первичные вторичные ключи имметь будут одинаковые значение и 2 поля формы не нужно для одного значения
$model->load(Yii::$app->request->post(), '')
MyModel::find()->where(['not' in, 'key_field', 'site']);
class User extends \yii\base\Object
{
public $id;
public $name;
}
$query = new \yii\db\Query;
$query->select(['id', 'name'])->from('users');
$command = $query->createCommand(Yii::$app->db);
$reader = $command->query();
while ($user = $reader->readObject(User::className(), [])){
$users[] = $user;
}