$form->field($mod, 'testDrop')->dropDownList([0 => '1', 1 => '2', 2 => '3'], [
'options' => [
1 => ['selected' => true] // Меняя цифру можно установить какой-либо элемент массива по умолчанию
]
]);
$form->field($model, 'id_shop')->dropDownList(ArrayHelper::map(/*********/), [
'options' => [
2 => ['selected' => true] // Если, конечно, такой id есть в базе
]
]);
return $this->redirect('index', ['model' => $model);
'pluginOptions' => [
// остальные настройки
'deleteUrl' => Url::to(['delete-img']), // укажите реальный путь к действию удаления изображений.
'initialPreviewAsData' => true,
'overwriteInitial'=>false,
'initialPreview' => !$model->isNewRecord ? $model->imagesLinks : [],
'initialPreviewConfig' => !$model->isNewRecord ? $model->imagesLinksData : [],
// остальные настройки.
]
public function getImagesLinks()
{
$path = ArrayHelper::getColumn(UploadsFiles::find()->all(), 'pathImg');
return $path;
}
public function getImagesLinksData()
{
$files = UploadsFiles::find()->all();
return ArrayHelper::toArray($files,[
UploadsFiles::class => [
'caption' => 'file',
'key' => 'id'
]
]);
}
// getPathImg() возвращает путь к изображению, используется в getImagesLinks()
public function getPathImg()
{
return Url::home(true) . 'uploads/' . $this->file;
}
$this->registerJs('
// #uploadsfiles-imagesfile - id Вашего FileInput
$("#uploadsfiles-imagesfile").on("fileuploaded", function(event, data, previewId, index) {
input.fileinput("destroy").fileinput({
multiple: true,
showUpload: false,
showRemove: false,
initialPreviewAsData: true,
overwriteInitial: false,
uploadUrl: "' . Url::to(['upload-img']) . '", // подставить реальный путь к действию
deleteUrl: "' . Url::to(['delete-img']) . '", // подставить реальный путь к действию
initialPreview: data.response.initialPreview,
initialPreviewConfig: data.response.initialPreviewData,
})
input.closest("form").find("button").attr("disabled", false)
console.log(data);
});
', View::POS_END);
public function actionUploadImg()
{
$model = new UploadsFiles();
if(Yii::$app->request->isAjax){
$model->imagesFile = UploadedFile::getInstance($model, 'imagesFile');
if($model->upload()){
$model->load(Yii::$app->request->post());
$model->saveImg();
$answer['initialPreview'] = $model->getImagesLinks();
$answer['initialPreviewData'] = $model->getImagesLinksData();
return json_encode($answer);
}
}
return false;
}
public function actionDeleteImg()
{
if(Yii::$app->request->isAjax){
$model = UploadsFiles::find()->where('id=:id', [':id' => Yii::$app->request->post('key')])->one();
FileHelper::unlink('uploads/' . $model->file);
$model->delete();
return Json::encode('Delete');
}
return false;
}
public $filename;
$model = new Image();
$model->filename;
'main' => [
'class' => 'app\modules\main\MainModule',
'layout' => 'main.php',
'layoutPath' => '@app/modules/main/views/layouts',
'params' => [
'test' => 'test1',
'test2' => 'test22'
]
],
// Если указали в классе модуля public $filename
$main = Yii::$app->getModule('main');
echo $main->filename;
// Если указали параметром в конфигурационном файле.
$main = Yii::$app->getModule('main');
echo $main->params['test'];
Yii::$app->controller->module->id
Yii::$app->controller->id
return $this->redirect(['admin', 'modalErrorOplata' => $modalErrorOplata]);
->andWhere(['not exists', $sub])
->andWhere(['not in', 'id', $sub])
$sub = Transaction::find()
->where(['>', 'amount', 0])
->andWhere(['brand_id' => $brand])
->andWhere(['between', 'created_at', $start_date, $end_date])
->column();
'components' => [
'testComponent' => [
'class' => 'app\components\TestComponent',
'name' => 'testComponent'
]
]
class TestComponent extends Component
{
public $name;
public function create()
{
$config = ArrayHelper::getValue(Yii::$app->components, Yii::$app->testComponent->name, []);
return Yii::createObject($config);
}
}
Yii::$app->testComponent->className()
// В ActiveForm
$form->field($model, 'password',[
'errorOptions' => [
'encode' => false,
]
])->passwordInput()
// В модели
$this->addError('password', UsersModule::t('module', 'ERROR_WRONG_USERNAME_OR_PASSWORD', ['link' => Html::tag('a','test')]));
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'suffix' => '/',
'normalizer' => [
'class' => 'yii\web\UrlNormalizer',
'normalizeTrailingSlash' => true,
'collapseSlashes' => true,
],
// остальные настройки urlManager
]
'suffix' => '/',
$this->registerJs('
$("#subscribe").on("click", function(e){
$.ajax({
method: "POST",
data: {id: $(this).attr("data-post-id"),_csrf: "' . Yii::$app->request->csrfToken . '"},
success: function(data){
console.log(data)
}
})
})
', View::POS_END)
if(Yii::$app->request->isAjax){
if(Yii::$app->request->validateCsrfToken()){
// продолжаем выполнение кода.
}
else{
return 'Error Csrf Token';
}
}
$user = User::findOne($_POST['userID']);
необходимо заменить на $user = User::findOne(['id' => Yii::$app->user->identity->id]);
$query1 = new \yii\db\Query();
$query1->select('userparam.*')
->from('userparam')
->where(['userparam.id' => 'param.id'])
->andWhere(['userparam.user_id' => 42])->one();
$query2 = new \yii\db\Query();
$query2->select('catparam.*')
->from('catparam')
->where(['catparam.parameter_id' => 'param.id'])
->andWhere(['in', 'catparam.category_id', [1,2]])->all();
$params = Param::find()
->select('id')
->where(['not exist' => $query1])->andWhere(['exists' => $query2])->all();
ну регистрация в два этапа=) В модальном окне заполняешь фио и прочую лабуду, затем нажимаешь далее, открывается вкладка где надо еще заполнить доп информацию, специальность стаж работы например.
class User extends ActiveRecord
{
const SCENARIO_LOGIN = 'login';
const SCENARIO_REGISTER = 'register';
public function scenarios()
{
return [
self::SCENARIO_LOGIN => ['username', 'password'],
self::SCENARIO_REGISTER => ['username', 'email', 'password'],
];
}
}
public function getVacancy()
{
return $this->hasMany(Vacancy::class, ['id_company' => 'id']); // у одного профиля может быть много вакансий
}
public function getProfile()
{
return $this->hasOne(Profile::class, ['id' => 'id_company']); // у одной вакансии может быть только один профиль.
}
$vacancies = new ArrayDataProvider([
'allModels' => Vacancy::find()->with('profile')->where(['creator' => $creator]),
'pagination' => [
'pageSize' => 30
]
]);
return $vacancies;
echo $vacancies->profile->company;
'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js',
public $js = []
public $depends = []
что прописано?