Wednesday, May 2, 2018

yii2 session handling

use  yii\web\Session;

$session = Yii::$app->session;

// start session
$session->open();

// close session
$session->close();

// destroys session.
$session->destroy();

//store value in session
$session['user_id'] = 2;

echo $session['user_id'];
//result will be 2

// check if a session is set
if ($session->isActive)

//unset session variable
unset($_SESSION['user_id']);

yii2 kartik datepicker

Step 1: Install below extension from github

$ php composer.phar require kartik-v/yii2-widget-datepicker "@dev"

Step 2: Use below code in your view file

use kartik\date\DatePicker;

// usage without model
echo '';
echo DatePicker::widget([
 'name' => 'birth_date', 
 'value' => date('d-M-Y'),
 'options' => ['placeholder' => 'Select birth date'],
 'pluginOptions' => [
  'format' => 'dd-M-yyyy',
 ]
]);

Tuesday, May 1, 2018

yii2 bootstrap modal popup

For implementing this you need to call default modal of Yii2 and begin and end modal is must

In step 2 you need to add javascipt for call the modal on button click.

In step 3 you need to create a action which render the data into your view.

How to add bootstrap modal in yii2

Add in your view:
//php code
Modal::begin([
    'header' => 'your header',
    'id'=>'modal',
     size'=>'modal-lg',
]);

echo '';

Modal::end();

Html::button('Button Name', ['value' => Url::to(['url/to']), 'title' => 'Title', 'class' => 'showModalButton btn btn-success']);

//javascript code
$('button').click(function(){
$('#modal').modal('show')
.find('#modalContent')
.load($(this).attr('value'));
})

Add in your controller/action:
//php code
if(Yii::$app->request->isAjax){
        return $this->renderAjax('your-view-file', [
            'data' => $data,
        ]);

yii2 generate random string

You can easily generate random string using security class.

Yii2 generate unique number

$string = Yii::$app->security->generateRandomString(12);
        
        print_r($string);
//result
JCt-5GeUlR8q
      

yii2 gridview custom column

In this example you can see Name attribute using as custom column.

Yii2 gridview custom column

GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'id',
        'username',
        'created_at',
        [
       'label' => 'Name',
       'value' => function ($model) {
           return $model->user->first_name;
       }
     ],
        ['class' => 'yii\grid\ActionColumn'],
    ],
]);

Monday, April 30, 2018

yii2 custom validator

In this example create a function checkStatus() and apply in the rules like below:

If the status is false then it will display the error message.

Yii2 custom validation rules

//model file
public function rules()
    {
        return [
            [['status'], 'checkStatus'], 

            // other rules
        ];
    }

    public function checkStatus($attribute, $params)
    {
        if($this->status == false){
        $this->addError($attribute, 'Status cannot be false');
        }
        
    }

yii2 compare validation

In this example you can see password and password_again attributes comparing using compare and compareAttribute.

Another example is validates if price is greater than or equal to 5000 using the compare and compareAttribute.

Yii2 Compare validation Rules

[
    // validates "password" attribute equals to "password_again"
    ['password', 'compare'],

    // same as above but with explicitly specifying the attribute to compare with
    ['password', 'compare', 'compareAttribute' => 'password_again'],

    // validates if price is greater than or equal to 5000
    ['price', 'compare', 'compareValue' => 5000, 'operator' => '>=', 'type' => 'number'],
]

Recent Update

yii2 session handling

use yii\web\Session; $session = Yii::$app->session; // start session $session->open(); // close session $session->close(); ...

Most Search