id - primaryKey
name - имя сотрудника
surname - фамилия сотрудника
id - primaryKey
id_employee - id сотрудника из таблицы Sotrudnik
id_position - id должности
id - primaryKey
name - название должности
public function getSotrRank()
{
return $this->hasMany(SotrRank::class, ['id_employee' => 'id');
}
public function getRank()
{
return $this->hasOne(Rank::class, ['id' => 'id_position');
}
// действие
public function actionSql($code)
{
$employee = Sotrudniki::find()->where(['code' => $code])->all();
return $this->render('sql', [
'employee' => $employee
]);
}
// вид sql
foreach($employee as $value){
echo $value->name; // имя сотрудника
// ещё один цикл для получения данных по связи SotrRank
foreach($value as $sotrRank){
// получить название должности через связь Rank
echo $sotrRank->rank->name;
}
}
Должностей может быть несколько
echo $sotrudnik->runk
? Подумайте хорошенько.public function getRank(){
return $this->hasMany(RankList::className(), ['id' => 'rank_code'])->via('sotrrank');
}
'siteSettings' => [
'class' => SiteSettings::class
],
'mailer' => function () {
return Yii::createObject([
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => true,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => Yii::$app->siteSettings->get('SITE.MAIL_HOST'),
'port' => Yii::$app->siteSettings->get('SITE.MAIL_PORT'),
'username' => Yii::$app->siteSettings->get('SITE.MAIL_USER'),
'password' => Yii::$app->siteSettings->get('SITE.MAIL_PASS'),
'encryption' => Yii::$app->siteSettings->get('SITE.MAIL_ENCR')
],
'messageConfig' => [
'to' => [ Yii::$app->siteSettings->get('SITE.EMAIL_ADMIN') ],
'from' => [ Yii::$app->siteSettings->get('SITE.MAIL_USER') ]
]
]);
'modules' => [
'support' => [
'class' => ModuleTicket::class,
// далее могут быть настройки самого модуля.
],
],
'params' => $params,
class Bootstrap implements BootstrapInterface
{
/**
* @inheritdoc
*/
public function bootstrap($app)
{
if ($app->hasModule('support') && ($module = $app->getModule('support')) instanceof ModuleTicket) {
$app->urlManager->addRules(
[
'<_m:support>/new-ticket' => '<_m>/ticket/create',
'<_m:support>/<id:\w+>' => '<_m>/ticket/view',
'<_m:support>' => '<_m>/ticket/index',
]
);
if (!$app->has($this->getModule()->queueComponent)) {
$app->set($this->getModule()->queueComponent, [
'class' => Queue::class,
'handle' => true, // whether tasks should be executed immediately
]);
}
}
// Add module I18N category.
if (!isset($app->i18n->translations['slo-nik/*'])) {
$app->i18n->translations['slo-nik/*'] = [
'class' => PhpMessageSource::class,
];
}
}
}
А видео всё-таки посмотрите, зело полезное...