<?php
$url = "https://api.privatbank.ua/p24api/pay_pb";
$xml = '
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0">
<merchant>
<id>75482</id>
<signature>99730232b2f984c571507a0e74595e777afd0428</signature>
</merchant>
<data>
<oper>cmt</oper>
<wait>0</wait>
<test>0</test>
<payment id="1234567">
<prop name="b_card_or_acc" value="4627081718568608" />
<prop name="amt" value="1" />
<prop name="ccy" value="UAH" />
<prop name="details" value="test%20merch%20not%20active" />
</payment>
</data>
</request>
';
$headers = array(
"Content-type: text/xml",
"Content-length: " . strlen($xml),
"Connection: close",
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
echo $data;
if(curl_errno($ch))
print curl_error($ch);
else
curl_close($ch);
?>
if ($model->load(Yii::$app->request->post())) {
$model->images = 'some value' . $model->images;
$model->save()) {
//Save logic
}
}
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$model->images = 'some value' . $model->images;
$model->save(false)) {
//Save logic
}
}
[['name', 'email', 'file'], 'required', 'message' => 'Вы не заполнили поле!'],
<?
$authors = Author::find()->all();
$authorsIds = ArrayHelper::getColumn($authors, 'id');
$allPosts = Posts::find()->where(['author_id' => $authorsIds])->orderBy('author_id')->all();
##### И далее чтобы вытащить все посты определенного автора
foreach($authors as $author) {
$author_id = $author->id;
$posts = ArrayHelper::getColumn($allPosts, function($element) use ($author_id){
if ($element['author_id'] == $author_id) {
return $element;
}
return false;
});
// Записываем в объект author данные связи с posts
$author->populateRelation('posts', $posts);
}
#### Теперь данные о постах можно спокойно доставать из модели Authors
$author = array_pop($authors);
var_dump($author->posts);
#### Все это можно инкапсулировать за статической функцией, например в классе Authors
public static function fillPosts($authors)
{
$authorsIds = ArrayHelper::getColumn($authors, 'id');
$allPosts = Posts::find()->where(['author_id' => $authorsIds])->orderBy('author_id')->all();
foreach($authors as $author) {
$author_id = $author->id;
$posts = ArrayHelper::getColumn($allPosts, function($element) use ($author_id){
if ($element['author_id'] == $author_id) {
return $element;
}
return false;
});
// Записываем в объект author данные связи с posts
$author->populateRelation('posts', $posts);
}
}
### Ну и вызывать
$authors = Author::find()->all();
Author::fillPosts($authors);
задача получить материалы у которых id меньше текущего на $nто можно использовать модель Articles:
$current_id = $this->id;
$n = 10;
$articles = Articles::find()
->where(['<', 'id', ($current_id - $n)])
->orderBy('id DESC')
->limit(10) // Не понятно как у вас там должен лимит работать, пусть будет 10
->all();
foreach($articles as $article) {
echo $article->id;
}
public function rules()
{
return [
['select', 'required'],
['select', 'each', 'rule' => ['in', 'range' => ['volvo', 'saab', 'opel', 'audi']]],
];
}
public function actionComment()
{
..............
...............
if (!Yii::$app->user->isGuest) {
$model->comment_author = Yii::$app->user->identity->username;
}
return $this->render('comment', ['model' => $model]);
}
public function search($params)
{
............
$query->andWhere(['subdivision_id' => \Yii::$app->user->getUserIdentity()->getSubdivisionId()]);
return $dataProvider;
}
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
</IfModule>
# Если это папка или файл, открываем его
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# В противном случае перенаправляем на index.php
RewriteRule . index.php
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
],