public function actionPostSpecifics(){
if(Yii::$app->request->isAjax){
$model = new Post();
$model->load(Yii::$app->request->post());
$category_id = $model-> category_id;
$form = new \yii\widgets\ActiveForm;
return $this->renderAjax('form_specifics', [
'model' => $model ,
'category_id' => $category_id,
'form' => $form
]);
}
}
echo $form->field($model, 'attribute_name')->textInput();
use yii\bootstrap\ActiveForm;
$form = ActiveForm::begin(['layout' => 'horizontal'])
$arr = [
[
"title"=> "Сайт1",
"link"=> "site1.ru"
],
[
"title"=> " Сайт2",
"link"=> "site2.ru"
],
[
"title"=> "Сайт2",
"link"=> "site3.ru"
]
];
<?= $form->field($model, 'email')->radioList(ArrayHelper::map($arr, 'title', 'link'),[
'item' => function($index, $label, $name, $checked, $value) {
return '<label class="modal-radio" style="display:block;">
<input type="radio" name="' . $name . '" value="' . $value . '" tabindex="3">
<i></i>
<span>' . ucwords($label) . '</span>
</label>';
}
]) ?>
Если просто создать форму с 2 полями field_3, field_4, то злоумышленник зная какие еще есть поля, может отправить и поля field_1, field_2 и они перезапишутся.
if (******** && $form->validate()) {
******
if ($model->save(true)) {
*****
}
}
public boolean save ( $runValidation = true, $attributeNames = null )
<?php
$form = ActiveForm::begin([
'id' => 'appointment_form',
'fieldConfig' => [
'options' => [
'tag' => 'span',
'class' => 'input input--kohana'
],
'template' => '{input}{label}{error}',
'inputOptions' => ['class' => 'input__field input__field--kohana'],
'labelOptions' => [
'class' => 'input__label input__label--kohana',
]
]
]);
?>
<?= $form->field($model, 'name')->textInput()->label("<i class=\"icon-phone5 icon icon--kohana\"></i><span class=\"input__label-content input__label-content--kohana\">" . $model->getAttributeLabel('name') . "</span>") ?>
<!-- ОСТАЛЬНЫЕ ПОЛЯ ФОРМЫ -->
<?= $form->field($model, 'body')->textInput()->label() ?>
<?= Html::submitButton('Submit'); ?>
<?php
ActiveForm::end();
?>
// Удалить!!!
/* $content = "<p>Email: " . $this->email1 . "</p>";
$content .= "<p>Name: " . $this->name1 . "</p>";
$content .= "<p>Phone: " . $this->phone . "</p>";
$content .= "<p>Datepicker: " . $this->datepicker . "</p>";
$content .= "<p>Body: " . $this->body1 . "</p>";*/
if ($this->validate()) {
Yii::$app->mailer->compose("@app/mail/layouts/html", ["content" => $this])
$("#form").submit(function (e) { // Устанавливаем событие отправки для формы с id=form
e.preventDefault();
var form_data = $(this).serialize(); // Собираем все данные из формы
$.ajax({
type: "POST", // Метод отправки
url: "public/script/send.php", // Путь до php файла отправителя
data: form_data,
success: function () {
// Код в этом блоке выполняется при успешной отправке сообщения
alert("Ваше сообщение отправлено!");
}
});
});
app\web\themes\name_theme\images
<?= Html::img('@web/themes/name_theme/images/page4_img1.jpg') ?>
@web
class PortfolioAsset extends AssetBundle
{
//public $basePath = '@app/themes/portfolio/assets';
//public $baseUrl = '@app/themes/portfolio';
public $sourcePath = '@app/themes/portfolio/assets';
public $css = [
'css/bootstrap.min.css',
'css/stylish-portfolio.css',
'font-awesome/css/font-awesome.min.css',
'http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,300italic,400italic,700italic'
];
public $js = [
'js/jquery.js',
'js/bootstrap.min.js',
'js/local.js'
];
public $depends = [
];
}
$image = PortfolioAsset::register($this);
echo Html::img($image->baseUrl.'/img/portfolio-1.jpg');
$theme = $this->theme;
public $baseUrl = '@app/themes/portfolio';
и получаете изображение уже таким способомecho Html::img($theme->getUrl('assets/img/portfolio-4.jpg'));
public function validatePassword($password)
{
return Yii::$app->security->validatePassword($password, $this->password_hash);
}
public function setPassword($password)
{
$this->password_hash = Yii::$app->security->generatePasswordHash($password);
}
} else {
Yii::$app->session->setFlash('exist', "Пользователь с таким именем существует.");
}
if (!User::find()->where(['username' => $model->username])->limit(1)->all()) {
sudo add-apt-repository ppa:ondrej/php-zts
sudo apt-get update
sudo apt-get install -y language-pack-en-base LC_ALL=en_US.UTF-8
echo "Текущая версия:" . $array['version']['number'] . ". Количество игроков " . $array['players']['online'] . '/' . $array['players']['max'];
$query = "UPDATE $table SET psevdonim='".$_POST["test_psevdonim"]."', familiya='".$_POST["test_familiya"]."' WHERE `id` = " . $_POST['id'] . "";
slonik@slonik-MS-7971:~$ aptitude search mysqlnd
v php-mysqlnd -
v php-mysqlnd:i386 -
p php-mysqlnd-ms - MySQL replication and load balancing module for PHP
p php-mysqlnd-ms:i386 - MySQL replication and load balancing module for PHP
v php5.6-mysqlnd -
v php5.6-mysqlnd:i386 -
v php5.6-mysqlnd-ms -
v php5.6-mysqlnd-ms:i386 -
v php7.0-mysqlnd -
v php7.0-mysqlnd:i386 -
v php7.1-mysqlnd -
v php7.1-mysqlnd:i386 -
v php7.2-mysqlnd -
v php7.2-mysqlnd:i386 -
v php7.3-mysqlnd -
v php7.3-mysqlnd:i386
sudo apt-get install php7.1-mysqlnd
public $program_name_id; // необходимо добавить в правила rules(), например указать, что это свойство integer
public function rules()
{
return [
['program_name_id', 'integer']
];
}
// и добавить в фильтры
->andFilterWhere(['program.id' => $this->program_name_id])
'columns' => [
[
'attribute' => 'program_name_id',
'value' => 'program.name'
]
]
'columns' => [
[
'attribute' => 'program_name_id',
'filter' => Program::getAllProgram()
'value' => 'program.name'
]
]
use yii\helper\ArrayHelper;
public static function getAllProgram()
{
/**
* в запрос self::find()->all() можно добавить условие выборки, сортировки, группировки и т.д. и т.п.
*/
return ArrayHelper::map(self::find->all(), 'id', 'name');
}
public $program_name; // необходимо добавить в правила rules(), например указать, что это свойство string
public function rules()
{
return [
['program_name', 'string']
];
}
// и добавить в фильтры
->andFilterWhere(['like','program.name' , $this->program_name])
'columns' => [
[
'attribute' => 'program_name',
'value' => 'program.name'
]
]