$json = '[{"id":"398",.....}]';
var_dump(json_decode($json, true));
array (size=2)
0 =>
array (size=6)
'id' => '398' (length=3)
'name' => 'цупывапывап' (length=22)
'description' => 'Дочь свергнутого короля Семи Королевств из династии Таргариенов Эйриса Безумного. ' (length=153)
'reason_murder' => 'Неприязнь' (length=18)
'killer' => 'Враждебный воин' (length=29)
'weapon' => 'Меч' (length=6)
1 =>
array (size=6)
'id' => '398' (length=3)
'name' => 'цупывапывап' (length=22)
'description' => 'Дочь свергнутого короля Семи Королевств из династии Таргариенов Эйриса Безумного. ' (length=153)
'reason_murder' => 'Неприязнь' (length=18)
'killer' => 'Враждебный воин' (length=29)
'weapon' => 'Меч' (length=6)
$(function() {
$('#form-data').on('submit', function(e){
e.preventDefault()
var form = $(this); // Предположу, что этот код выполняется в обработчике события 'submit' формы
var data = new FormData(); // Для отправки файлов понадобится объект FormData. Подробнее про него можно прочитать в документации - https://developer.mozilla.org/en-US/docs/Web/API/FormData
// Сбор данных о файлах
var filesField = form.find('input[type="file"]');
var fileName = filesField.attr('name');
for(var i = 0; i < filesField.prop('files').length; i++){
var file = filesField.prop('files')[i];
data.append(fileName, file) ;
}
// Отправка данных
var url = 'upload.php';
$.ajax({
url: url,
type: 'POST',
data: data,
contentType: false,
cache: false,
processData:false,
success: function(response) {
console.log(response)
}
});
})
});
<img src="<?= Url::to('@web/' . '/' . $model->images[0]->path . '/' . $model->images[0]->file, true) ?>" alt="">
// and
echo Html::img(Url::to('@web' . '/' . $model->images[0]->path . '/' . $model->images[0]->file, true))
http://site.ru/uploads/image.jpg
/uploads/image.jpg
$query->orderBy([
'{{%table_name}}.name' => SORT_ASC,
'objectName' => SORT_ASC
]);
$str = 'мой-сайт.рф';
$pattern = '/([-а-яё.]+)/iu';
echo preg_replace_callback($pattern, function($matches){
return idn_to_ascii( $matches[0], IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46);
}, $str );
// на выходе
// xn----8sbzclmxk.xn--p1ai
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;
}
}
'modules' => [
'support' => [
'class' => ModuleTicket::class,
// далее могут быть настройки самого модуля.
],
],
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,
];
}
}
}
'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') ]
]
]);
'columns' => [
// ...
[
'class' => ActionColumn::className(),
'buttons' => [
'view' => function($url, $model, $key){
return Html::a('View', ['sotrudniki/view', 'code' => $model->id);
}
]
],
]
'SMSCenter' => function(){
return Yii::$app->createObject( [
'class' => 'integready\smsc\SMSCenter',
'login' => '',
'password' => '',
'useSSL' => false,
'options' => [
],
]);
}
'login' => Yii::$app->settings->get('password),
'components' => [
'settings' => [
// настройки компонента
]
]
/usr/local/bin/php /home/webko/project.webko.net/project/yii hello/test
<?php
while ( $i <= $categoryCount) {
?>
<button id="btn<?= $i ?>" >
<?php
}
// регистрируете js код
$this->registerJs("
$('button.className').on('click', function(){
console.log($(this).attr('id'))
})
", yii\web\View::POS_END);
?>
Есть Модуль выводящий на форму N кнопок с объектами.
Либо браузер либо YII уже не хочет принимать php переменные в JS коде.
$text = 'Длина и ширина магниевого корпуса ноутбука равны 320x202 мм. <br><br>
Это почти как лист бумаги формата A4. Толщина устройства не превышает 14,9 мм.
Весит же оно всего 880 граммов. <br>';
preg_match_all('#.*?бумаги.*?[.?!](?:\s|$)#', $text, $match);
print_r($match);
Array
(
[0] => Array
(
[0] => Это почти как лист бумаги формата A4.
)
)
public function normalizeUrl($value)
{
return strtr($value, array(' ' => '-', 'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'e', 'ж' => 'j', 'з' => 'z', 'и' => 'i', 'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'shch', 'ы' => 'y', 'э' => 'e', 'ю' => 'yu', 'я' => 'ya', 'ъ' => '', 'ь' => ''));
}