Полезное о Yii2

----Установка Yii2 (Composer должен быть уже установлен!):---------
# in projects directory - if base apps:
curl -sS https://getcomposer.org/installer | php;
# if is basic application:
php composer.phar create-project yiisoft/yii2-app-basic app
# if advanced application:
php composer.phar create-project yiisoft/yii2-app-advanced app
mv composer.* app/ && cd app
php composer.phar require "fxp/composer-asset-plugin:^1.2.0"
# if one advanced app - then run:
php init
# !!!! You will configuration your db connection!!! before run:
php yii migrate
-----------Gii in yii2:--------------------
Для генерации модели достаточно перечислять классы без неймспейсов.
При генерации CRUD надо указывать классы по неймспейсам и представление
только!!! через знак @app/view/yourfolder
------------------------для одного домена:-----------------------------------
Для решения этой проблемы требуется внести следующие настройки (заменить соответствующме значения) в конфигурацию бекенд-приложения backend/config/main.php:
'components' => [
    'request' => [
        'csrfParam' => '_backendCSRF',
        'csrfCookie' => [
            'httpOnly' => true,
            'path' => '/admin',
        ],
    ],
    'user' => [
        'identityCookie' => [
            'name' => '_backendIdentity',
            'path' => '/admin',
            'httpOnly' => true,
        ],
    ],
    'session' => [
        'name' => 'BACKENDSESSID',
        'cookieParams' => [
            'path' => '/admin',
        ],
    ],
],
----------------Helpers:----------------------
$userHost = Yii::$app->request->userHost;
$userIP = Yii::$app->request->userIP;
$useragent = Yii::$app->request->userAgent;
$listPreferLangs = Yii::$app->request->acceptableLanguages;
use yii\helpers\Url;$link = Url::to(['post/view', 'id' => 100]);
// создает абсолютный URL: http://www.example.com/index.php?r=post/index
echo Url::to(['post/index'], true);
// создает абсолютный URL с использованием схемы https
echo Url::to(['post/index'], 'https');
//Url to aliasUrl:
Yii::setAlias('@example', 'http://example.com/');echo Url::to('@example');
//ErrorExceptions:
use yii\web\NotFoundHttpException;throw new NotFoundHttpException();
//
use yii\base\ErrorException;
try {
    10/0;
} catch (ErrorException $e) {
    Yii::warning("Деление на ноль.");
}//и дальше можно продолжать выполнение.

----------------------------------------------
1) You can set in controller like that:
Yii::$app->getSession()->setFlash('success', 'My Message');
2) Then you can display it in view like so:
<?php if (Yii::$app->session->hasFlash('success')) { ?>
  <div class="alert alert-success alert-dismissable">
  <button aria-hidden="true" data-dismiss="alert" class="close" type="button">x</button>
  <h4><i class="icon fa fa-check"></i>Saved!</h4>
  <?= Yii::$app->session->getFlash('success') ?>
  </div>
<?php } ?>
and so like:
<?php ... use yii\bootstrap\Alert; ?>
<?php if (Yii::$app->session->hasFlash('success')) { ?>
<?= Alert::widget([
   'options' => ['class' => 'alert-info'],
   'body' => Yii::$app->session->getFlash('success'),
]);?>
<?php } ?>
-------------MANY DB IN APP:-----------------
>>>>>config:>>>>>>>>>>>>>>
'db' => require(__DIR__ . '/db_main.php'),
'db1' => require(__DIR__ . '/db_session.php'),
>>>>>>>>>>>model:>>>>>>>>>
namespace app\models;
use Yii;
use yii\db\ActiveRecord;
use yii\db\Connection;

class Invent extends ActiveRecord
{
 public static function getDb(){
       return \Yii::$app->db1;
    }
}
--------------------------------------------------------------

Комментариев нет :

Отправить комментарий

Благодарю за ваше участие!