Codxplore.com

Latest news:

New android application Islamic Video has been released. its a free islamic video application for android smartphone. Download now!

How to Call action of other Controller in YII2



When we need to to call another controller function,we can simply use the below code

Yii::$app->runAction('publish/commit',[
                    'r' => 'ws'
]);

write it in Controller A index method and you can get the value of $r  in Controller Publish commit method.

 

 


Views: 3700

Yii2 Validate Only Create Action



 

Its called 'scenarios': http://www.yiiframework.com/doc-2.0/guide-structure-models.html#scenarios

in model:

public function rules()
{
    return [
        ['title', 'required', 'on' => 'create']
    ];
}

in controller:

public function actionCreate()
{
     $model = new Item();
     $model->scenario = 'create';
     ...
}

You'd better define scenario as a constant though.

 

source : http://stackoverflow.com/questions/29449019/yii2-validate-only-create-action


Views: 3741

Yii2 - Get Current Action ID in main.php



Answer

In a layout you can access the current controller via $this->context, and so the current action id by $this->context->action->id

For reference http://stackoverflow.com/questions/28769719/yii2-get-current-action-id-in-main-php


Views: 2849

Yii2 pagination



Pagination represents information relevant to pagination of data items.

When data needs to be rendered in multiple pages, Pagination can be used to represent information such as total item count, page size, current page, etc. These information can be passed to pagers to render pagination buttons or links.

The following example shows how to create a pagination object and feed it to a pager.

Controller action:

public function actionSearch($q = '') {
        $this->layout = 'site_main';

        $q = trim($q);

        $sql = "SELECT * FROM
(select p.product_id as 'sid',p.name_en,p.name_ar,p.description_en,description_ar,p.image, 'product' as 'type', 'none' as 'category_type'
from tbl_products p
union
select sl.service_location_id as 'sid' ,sl.name_en,sl.name_ar,sl.description_en,sl.description_ar,sl.image,'servicelocation' as 'type' ,'none' as 'category_type'
from tbl_service_locations sl
)
as search
WHERE search.name_en LIKE '$q%' or search.name_ar LIKE '$q%' or search.description_en LIKE '$q%' or search.description_ar LIKE '$q%'  
";
        $query = Yii::$app->db->createCommand($sql)->queryAll();

        $count = sizeof($query);

        //echo $count;

        $dataProvider = new SqlDataProvider([
            'sql' => $sql,
            'totalCount' => $count,
            'pagination' => [
                'pageSize' => 10,
            ],
        ]);

        //$models = $dataProvider->query;

        return $this->render('search', [
                    'q' => $q,
                    'result' => $dataProvider->getModels(),
                    'dataProvider' => $dataProvider,
                    'count' => $count,
        ]);
    }

View :

foreach ($result as $row) {

 // display $model here

}

// display pagination

echo yiiwidgetsLinkPager::widget([
    'pagination' => $dataProvider->pagination,
 ]);

For reference please visit

http://www.yiiframework.com/doc-2.0/yii-data-pagination.html

 

 


Views: 3736

Yii2 leftJoin()



leftJoin()

$query = new Query;
$query    ->select(['tbl_user.username AS name', 'tbl_category.type as Category'])  
        ->from('tbl_user')
        ->leftJoin('tbl_category', 'tbl_category.createdby = tbl_user.userid')
        ->limit(2);
       
$command = $query->createCommand();
$data = $command->queryAll();


Views: 1864

Yii2 innerJoinWith()



innerJoinWith()

$model = User::find()
    ->innerJoinWith('comments', false)
    ->all();
// equivalent to the above
$model = User::find()
    ->joinWith('comments', false, 'INNER JOIN')
    ->all();

SYNTAX:

$query = new Query;
$query    ->select(['SELECT COLUMNS'])  
        ->from('TABLE_NAME_1')
        ->join(    'JOIN_TYPE',
                'TABLE_NAME_2',
                'TABLE_NAME_2.COLUMN =TABLE_NAME_1.COLUMN'
            );
$command = $query->createCommand();
$data = $command->queryAll();               

Sample 1:

$query = new Query;
$query    ->select([
        'tbl_user.username AS name',
        'tbl_category.categoryname as  Category',
        'tbl_document.documentname']
        ) 
    ->from('tbl_user')
    ->join('LEFT OUTER JOIN', 'tbl_category',
                'tbl_category.createdby =tbl_user.userid')        
    ->join('LEFT OUTER JOIN', 'tbl_document',
                'tbl_category.cid =tbl_document.did')
    ->LIMIT(5)    ;
       
$command = $query->createCommand();
$data = $command->queryAll();   


Views: 2087

Yii2 joinWith()



joinWith()

Sample 1:

$model = User::find()
    ->joinWith('comments')
    ->all();

Sample 2:

$model = User::find()
    ->joinWith('comments')
    ->orderBy('tbl_comments_id.id, tbl_user.id')
    ->all();


Views: 2022

Yii2 Relation Model



Relation Model

$model = User::find()
        ->with('comments')
        ->all();
    foreach ($model as $user) {
        // get data from relation model
        $comments = $user->comments;
        ......
        foreach($comments as $comment){
            ........
        }
    }


Views: 1237

Yii2 GridView sorting and pagination using pajax



<?php
use yiiwidgetsPjax;
?>


Add above line in the beginning of your view. 


<?php Pjax::begin(); ?>

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yiigridSerialColumn'],

        'id',
        'branch:ntext',
        'version:ntext',
        'release_date:ntext',

        [
            'class' => 'yiigridActionColumn',
            'template' => '{view}',
        ],
    ],
]); ?>

<?php Pjax::end(); ?>

 


Views: 1590

Yii2 Turning on Pretty URLs



First, let's enable Yii2's pretty URLs with mod_rewrite. On the Yii home page, if you click on the About menu option, the URL will be something like http://localhost/hello/web/index.php?r=site%2Fabout. We'd like to change that to http://localhost/hello/web/site/about.

The config subdirectory includes environment configurations for your web and console applications as well as the future database settings. Edit /config/web.php to add urlManagement to the current web application. Add the following urlManager section within the components array:

Then, create an .htaccess file within /web where the primary index.php file exists:

Make sure mod_rewrite is running locally on MAMP; if not, check out this Stack Overflow guide.

In your browser, visit this URL: http://localhost/hello/web/site/about. You should see the Yii application About page and clicking on other menu options should bring up pretty URLs.


Views: 1124

Subscribe Us


Follow Us