谁一开始就是大神?

PHP 第63页

PHP

AR::findOne()参数问题[2.0]

BeeLion阅读(74)

$model = WxReply::findOne(['in','id',$ids]);
$model = WxReply::find()->where(['in','id',$ids])->One();

上面的代码查找不到,下面的才行,为什么?

$model = WxReply::findOne(1); findOne是查询1条记录。里面直接写id就可以。
$model = WxReply::findOne(['id'=>$ids]);
这样呢?

modules模块化产生的url有重,如何解决。[2.0]

loveCherry阅读(87)

http://admin.myblog.com/article/article/index 这是我的一个文章列表连接 明显多了一个 article 但是除掉又不行。。报未找到。 解析流程我想是 第一个 article是找到config配置文件 找到了类

article' => ['class' => 'app\modules\article\Module',],  

然后根类找到$controllerNamespace
接下来自然而然的 就找到了 /article/index 这样完成了一个模块访问,
那么问题就来了。url不够简洁。求各位大神解惑。

config文件配置

  'modules' => [
        'article' => ['class' => 'app\modules\article\Module',],
    ],


这是module.php
<?php

namespace app\modules\article;

/**
 * article module definition class
 */
class Module extends \yii\base\Module
{
    /**
     * @inheritdoc
     */
    public $controllerNamespace = 'app\modules\article\controllers';

    /**
     * @inheritdoc
     */
    public function init()
    {
        parent::init();

        // custom initialization code goes here
    }
}

它url出现这个article/article/index,中间这个是控制器名称,你把这个article控制器改成 index 也是个解决办法
这不算是有重,两个article的意义不一样,只是因为你把两个取了一样的名字。
个别路径要调整你可以指定别名,比如用art代替 article/article 。
如果量多,修改路由转发规则
没看太明白,不过我感觉你需要的是/article,url路由要/开头,不然的话是相对路由,如果你当前已经在article模块,就会再出一个article

yii模块怎么载入自义配置啊[2.0]

Gracefans阅读(68)

模块入口

<?php
namespace app\modules\api;

use yii\base\Module;
use yii;

class ApiModule extends Module
{
    public function init()
    {
        parent::init();
        yii::$app->response->format = yii\web\Response::FORMAT_JSON;
        yii::configure($this, require(__DIR__ . '/config/main.php'));
    }
}

模块控制器

<?php

namespace app\modules\api\controllers;

use yii;
use yii\web\Controller;

class IndexController extends Controller
{
    public function actionIndex()
    {
        return (array) yii::$app->params;
    }
}

模块的配置

<?php
return [
    'components' => [

    ],
    'params' => [
        'id' => 5
    ]
];

为什么 yii::configure 没有生效,yii::$app->params打印出来 是父级的值

先获取模块实例再访问模块配置!
模块的配置你用应用实例去获取当然获取不到
同问,我遇到了模块自定义配置不能生效的问题

高级模板下前台如何调用后台的model?[2.0]

lionsea阅读(80)

因为前台有些操作需要用到model类,和后台操作一致,不想在前台再创建一次model,
有没有什么方法是直接可以调用后台model的。。。。
论坛上有回答说是use (use backend\models\article\Article)?这样不对的。。请解。谢谢。

不对是指什么意思?
你的Article类的namespace到底是“backend\models\article”还是“app\models\article”?你可能没有完全理解namespace的作用。。
楼主解决了吗?? 我现在也是跟你一样的问题
Unable to find ‘backend\models\Category’ in file: D:\phpStudy\WWW\yii2/backend/models/Category.php. Namespace missing?

ActiveForm和beginForm有什么区别?

Leosea阅读(76)

ActiveForm 和 beginForm 有什么区别?

区别都体现在字面意思上了。
ActiveForm,默认包含了完整的form标签。
beginForm,只是form标签的开始部分

初始化项目之后执行工程报错:Calltoundefinedmethod[2.0]

youthCherry阅读(89)

PHP Fatal Error – yii\base\ErrorException
Call to undefined method common\models\User::findIdentity()

在执行项目之后:SiteController -> render( index )

执行layout main 文件,调用 Yii::$app->user->isGuest;

报错是: 调用未知的方法 -》 common\models\User::findIdentity() ;

what ?

common\models\User 看看有沒有 findIdentity()
某個地方有調用到 common\models\User :: findIdentity()
你在錯誤內容下面看一下. 是哪裡執行的

YII2控制器,action路由大小写问题[2.0]

kenslim阅读(75)

使用驼峰命名控制器和方法,如何在url使用
控制器名字ConNameController.php

public function actionActionName() {
    echo 'hello world';
}

怎么设置才能是路由是 /conname/actionname

这个事情很难做,你可以查看源码Module.php 560行,其内容如下:
可以看到’-‘是直接写在里面的,除非你要修改源码,或者将相关的内容都覆盖掉(如继承Application,重写相应的方法,但不排除会造成其他bug)
注:这里只列出了controller名字解析的地方
https://github.com/yiisoft/yii2/blob/master/framework/base/Module.php#L560
。。。你这个问题问的太不详细了
控制器名字ConnameController.php,action名actionActionname
con-name ?
醉了醉了醉了…
actionActionname ?

这个为啥写了两个email[2.0]

coolLion阅读(78)

<?php

namespace app\models;

use yii\base\Model;

class EntryForm extends Model
{
    public $name;
    public $email;

    public function rules()
    {
        return [
            [['name', 'email'], 'required'],
            ['email', 'email'],
        ];
    }
}

一个是email字段,一个是验证是否是email
第一个是必填,第二个是验证格式

为啥第一个要大写呀[2.0]

acgbubble阅读(76)

use Yii;
use yii\web\Controller;

别人写的框架,不是你写的;当然,你要是觉得第一个大写不好看,你可以自己写框架,自己定义基础类;
(^__^) 嘻嘻
http://www.yiichina.com/doc
文档多看看,都是些基础性知识.
找下度娘,都有答案.
规范化,定制化

form表单的名字[2.0]

Tinafrog阅读(75)

我在练习权威手册上的form表单,我打完代码之后看了眼浏览器,表单的name显示的是model层的名字,1.这个是为啥呢。2.我要怎么才能设置form表单的name呀

直接在属性配置里(options)头写name就行
在from的model里面,实现attributeLabels()方法。比如

登录

找回密码

注册