public function validatorLongWords ( $attribute )
{
$parts = explode( ' ', $this->$attribute );
foreach ( $parts as $word ) {
if ( strlen( $word ) > static::LONG_WORD ) { # Для UTF-8 и русского текста используем mb_strlen( $word )
$this->addError( $attribute, 'Слишком длинное слово в строке, да...' );
break; # или return;
}
}
}
Yii::$app->db->createCommand()->insert('review', [
'review_date' =>$reviewDate ,
'review_name' => $reviewName,
'product_id' => $productId,
'review' => $review,
])->execute();
$review = new Review([
'review_date' =>$reviewDate ,
'review_name' => $reviewName,
'product_id' => $productId,
'review' => $review,
]);
$review->save();
class MessageSendEvent extends Event
{
const EVENT_MESSAGE_SEND = 'message-send-event';
/**
* @var string
*/
public $message;
/**
* ...
*/
public function send ()
{
echo $this->message;
}
}
# Вешаем обработчик события
Yii::$app->on( MessageSendEvent::EVENT_MESSAGE_SEND, function ( MessageSendEvent $event ) {
$event->send();
} );
# Инициируем событие
Yii::$app->trigger(
MessageSendEvent::EVENT_MESSAGE_SEND,
new MessageSendEvent( [
'message' => 'Сообщение!'
] )
);
<?= \path\to\widget\MyWidget::widget( [ 'list' => $treeList ] ); ?>
class MyWidget extends \yii\bootstrap\Widget
{
public $list = [];
public function someMethod () {}
public function run () {
return $this->renderFile( '...' );
}
}
<?php
use path\to\widget\MyWidget;
use yii\web\View;
/**
* @var View $this
* @var MyWidget $widget
*/
$widget = $this->context;
?>
<!-- Тут мы используя циклы и методы виджета формируем отображение -->
<?php foreach( $widget->... as $value ) { ?>
<!-- Делаем что нужно и как нужно -->
<?php } ?>
У меня подозрения возникли...
то где прописывать скрипт?
Во view? Где должен быть url.php? Как получить данные в контроллер?
Или для данного функционала подойдёт Pjax?