qiliux

qiliux

这家伙有点懒,还没写个性签名!

  • 财富值94
  • 威望值0
  • 总积分114

个人信息

  • 详细回答问题3:
    如果你在model中不override方法 extraFields()获取object,你在URL中添加expand字符是无效的。
    因为你想想index获得了一张表内容的内容,他怎么知道你的外键的对象。
    所以我们override此方法并返回相应的对象。示例如下,url?expand=room

    public function extraFields()
        {
            return ['room' => function(){
                return $this->room;
            }];
        }
    
  • 你也可以把_csrf关了吧。

  • 回复了 的回答

    请重写UrlRule类。
    给你个示例如下:

    `<?php
    namespace app\components;
    use yii\web\UrlRuleInterface;
    use yii\base\Object;
    class NewsUrlRule extends Object implements UrlRuleInterface{
        /*
            此函数可以创建Url,辅助 yii\helpers\Url类创建Url时使用。
        */
       public function createUrl($manager, $route, $params)
        {
            if ($route === 'news/item-detail') {
                if (isset($params['title'])) {
                    return 'news/'.$params['title'];
                }
            }
            return false; // this rule does not apply
        }
        //parse请求
        public function parseRequest($manager, $request)
        {
            $pathInfo = $request->getPathInfo();
            if (preg_match('%^([^\/]*)\/([^\/]*)$%', $pathInfo, $matches)) {
                if($matches[1] == 'news'){
                    $params = [ 'title' => $matches[2]];
                    return ['news/item-detail', $params];
                }else{
                    return false;
                }
            }
        return false; // this rule does not apply
        }
    }
    ?>`
    

    然后在组件中配置相应的类

    'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules'=>[
                    ['class' => 'app\components\NewsUrlRule'],
                    //配置缺省路由规则。
                    'news/<year:\d{4}>/item-url-test' => 'news/item-url-test',
                    [
                        'pattern' => 'news/<category:\w+>/item-url-test', 
                        'route' => 'news/item-url-test',
                        'defaults' => ['category' => 'shopping'],
                    ],
                    
                ],
            ],
    

    好吧。我想复杂了。。

  • 赞了回答

    Apache中没有捕获到的主机名,默认使用第一个虚拟主机。

  • 请重写UrlRule类。
    给你个示例如下:

    `<?php
    namespace app\components;
    use yii\web\UrlRuleInterface;
    use yii\base\Object;
    class NewsUrlRule extends Object implements UrlRuleInterface{
        /*
            此函数可以创建Url,辅助 yii\helpers\Url类创建Url时使用。
        */
       public function createUrl($manager, $route, $params)
        {
            if ($route === 'news/item-detail') {
                if (isset($params['title'])) {
                    return 'news/'.$params['title'];
                }
            }
            return false; // this rule does not apply
        }
        //parse请求
        public function parseRequest($manager, $request)
        {
            $pathInfo = $request->getPathInfo();
            if (preg_match('%^([^\/]*)\/([^\/]*)$%', $pathInfo, $matches)) {
                if($matches[1] == 'news'){
                    $params = [ 'title' => $matches[2]];
                    return ['news/item-detail', $params];
                }else{
                    return false;
                }
            }
        return false; // this rule does not apply
        }
    }
    ?>`
    

    然后在组件中配置相应的类

    'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules'=>[
                    ['class' => 'app\components\NewsUrlRule'],
                    //配置缺省路由规则。
                    'news/<year:\d{4}>/item-url-test' => 'news/item-url-test',
                    [
                        'pattern' => 'news/<category:\w+>/item-url-test', 
                        'route' => 'news/item-url-test',
                        'defaults' => ['category' => 'shopping'],
                    ],
                    
                ],
            ],
    
  • 回复了 的回答

    问题描述不明不白..
    确认你的配置已生效,
    确定各端口都正常访问,
    再确认没有别的规则指向www目录

    有道理。。。我再指定localhost指向www不就可以了???
    原来坎在这里。。

  • 回复了 的回答

    问题描述不明不白..
    确认你的配置已生效,
    确定各端口都正常访问,
    再确认没有别的规则指向www目录

    配置已经生效了。
    但是当我回头想用localhost访问www后直接跳转到basic/web了。

  • 2015-08-14 已签到
    连续签到4天,获得了20个金钱
  • 发布了话题
    yii 2 怎么获取query 类 执行sql查询的时间
助理 等级规则
114/200
资料完整度
0/100
用户活跃度
20/100

Ta的关注

0

Ta的粉丝

1

Ta的访客

1