PHPStorm全局搜索

shift +cmd +f

全局的css

https://www.niwoxuexi.com/blog/php/article/166.html

  1. 全局修改assets/AppAsset.php
  2. 某个文件中引入
//引用css文件,注意自己的文件路径
<?php $this->registerCssFile('css/test.css');?>
//引用js文件,注意自己的文件路径<span class="redactor-invisible-space"></span>
<?php $this->registerJsFile('js/test.js');?>

默认控制器

config/web.php,修改defaultRoute字段对应响应的控制器即可。

$config = [
    'id' => 'basic',
    'defaultRoute' =>  'default',
    ...

默认将定位到DefaultController->ActionIndex

yii2中获取controller的方法

<?php
echo Yii::$app->controller->id;
?>
'items' => [
            ['label' => '首页', 'url' => ['/index/index']],
            [   'label' => '工具',
                'url' => ['/tools/index'],
                'active' => in_array(\Yii::$app->controller->id, ['tools'])
            ],

对应到controller Id

修改title

$this->getView()->title = "about";

伪静态

config/web.php $config 下面 components 添加 如下代码

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'suffix' => '.html',
            'rules'           => [
                '<controller:\w+>' => '<controller>/index',
                '<controller:\w+>' => '<controller>/index',
            ]
        ],

然后再新建一个.htaccess 文件放置web目录 该文件代码如下:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

URL跳转

方式1:

use yii\helpers\url;
$co = URL::toRoute('site/index');

方式2:

Yii::$app-> urlManager->crateUrl('xx/xxx');

注意点

  1. 使用gii要格外注意大小写。否则界面可能会404

Yii2禁用默认引入的jquery

jquery放到头部

js位置

POS_HEAD——head结束标签之前:$this->registerJs('alert(4)',View::POS_HEAD);
POS_BEGIN——body开始标签之后:$this->registerJs('alert(4)',View::POS_BEGIN);
POS_END——body结束标签之前:$this->registerJs('alert(4)',View::POS_END);
POS_READY POS_LOAD:$this->registerJs('alert(4)', View::POS_READY);
//depends保证加载JS文件的先后顺序、asset bundles资源包
//此时先加载yii\web\YiiAsset,再加载assets/e05e437e/yii.js

\yii\web\View::POS_END

s的放置位置默认在html结尾,可以在AppAsset中设置:

<?php $this->registerJsFile(yii\helpers\Url::base().'/js/jquery.numberedtextarea.js', ['depends' => ['app\assets\AppAsset'],'position' => $this::POS_HEAD]); ?>
    <?php

路径

Yii::$app->request->baseUrl. '/supermarkets/sample'
Yii::$app->urlManager->createUrl('tools/json2objc');

ajax请求

$('.objc').click(function() {
            $.ajax({
                type: "POST",
                url: "<?php echo \Yii::$app->urlManager->createUrl('tools/json2objc');?>",
                data:{'json':current_json_str} ,
                //dataType: "html",
                success: function(html){
                    //$("#addAngles").append(html);
                    console.log(html);
                }
            })
        });

Pagination

控制器:

 return $this->render('index',[
           'posts' => $content,
           'pagination' => $pagination
       ]
       );

视图:

<?php
foreach($posts as $key=>$val){
    echo var_dump($val);
    echo '</br>';
}
?>
<?= LinkPager::widget(['pagination' => $pagination]); ?>

手动配置第三方库(不使用composer)

  1. 将第三方包放到vendor目录下
require(__DIR__ . '/../vendor/yj/bmob/BmobObject.class.php');

//使用
$bmobObj = new \BmobObject("GameScore");
$res=$bmobObj->create(array("score"=>80,"playerName"=>"game")); //添加对象
$res=$bmobObj->get("bd89c6bce9"); // 获取id为bd89c6bce9的对象
$res=$bmobObj->get(); //获取所有对象
print_r($res);

推荐使用 require_once

stdClass Object转array的方法

参考:PHP中把stdClass Object转array的几个方法

$array = json_decode(json_encode($res),TRUE);