谁一开始就是大神?

PHP 第99页

PHP

yiirelations非主键关联[1.1]

lovelyJames阅读(28)

微信表(wechat)
id,number(微信号)

文章表(artivle)
id,wechat_number(微信号)

这里没用id做关联

我在Article modle里面是这么写的:

'wechat_info'=>array(self:BELONGS_TO, 'Wechat', '', 'on'=>'t.wechat_number = wechat_info.number')

这是我在网站通过查资料后感觉应该这么写的,一直不成功,我有几个疑点
1、 t.wechat_number 中 t 代表什么,我个人感觉好像是文章表(article)的别名。不知道是不是我理解错了?

2、我看过一些示例,像我这么写的应该生成的是个左链接,但我看了报错代码,貌似没有生成左链接,报错的内容是t.wechat_number字段不存在

你的Article文章表有这个字段吗
t.代表主表别名
非主键关联的话可以用数组去建立关系

restfulAPI:我直接在浏览器里执行delete和create操作执行不了[2.0]

Fionasea阅读(32)

问题是怎么访问 restful API 执行create和delete操作

提供以下几种方法:
1)如果题主是用PhpStorm来开发项目的话,里面有个Rest Client插件,用来测试Restful接口十分方便,支持Get/Post/Delete/Put等Http method,还支持上传文件,修改Http header;
2)用curl命令测试;
3)用浏览器测试,不过在测试非Get方式访问或需要自定义Http header的API时,需要安装插件;
4)自己写一个HTML网页,里面嵌入一个form表单,同样可以做测试,只是稍微麻烦了点。
http://www.yiichina.com/doc/guide/2.0/rest-quick-start
没用过 这是手册地址
1 api接口本来就不是给浏览器用的。
2 实在要跟浏览器扯上关系的话,可以安装扩展,比如postman,注意不要太相信扩展程序,比如postman对update和delete貌似就有bug。
3 建议用curl命令直接测试。api消费者的开发也没浏览器什么事,比如安卓用HttpClient、HttpConnection或者直接用socket写客户端。
请问楼主这么测试的

YII2怎样使用bootstrap的流式布局[2.0]

NeoCherry阅读(32)

各位好:
请问在YII2.0中怎样可以使用流式布局呀,我如下部分所写:

<?php $this->beginBody() ?>
    <div class="container-fluid">
        <div class="row-fluid">
            <div class="span4">
                <h1>qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq</h1>
            </div>
            <div class="span8">
                <h1>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqqqqqqqqqqqqqqqqq</h1>
            </div>
        </div>
</div>

<?php $this->endBody() ?>

没有反应呀,为什么呢?

你想要写好bootstrap,可以到这里去学习:http://v3.bootcss.com
你写的称为栅格系统,自从升到 bootstrap v3 版本已经不支持 span* 的写法了,取而代之的是用类似 .col-xs-*col-md-* 这种预定义的类,来快速创建栅格布局。
比如,你应该将 row-fluid 改为 row,并且将 span4 改为 col-md-4span8 改为 col-md-8

为何数组提交到view页面后格式变了?[2.0]

richEagle阅读(27)

发现问题,实际是在Controller中返回时被改变了。

return($id) 是原样返回;

默认的 return[$id] 是把$id作为数组成员之一返回,所以外面套了一层。

在Controller中有生成一个数组$id,格式如下:

array (size=2)
1 => string '1' (length=1)
2 => string '2' (length=1)

$this->render(……,’id’=>$id)到views页面后格式变为:

array (size=1)
 0 => 
 array (size=2)
 1 => string '1' (length=1)
 2 => string '2' (length=1)

$id数组外层又给套了一个数组….
为何会这样?

render的第二个参数为数组
因为你的$id数组不是关联数组,而是索引数组。

一个yii项目下有好多个子项目,每个子项目都有登录功能,怎么区分不同的session[1.1]

Nobleslim阅读(29)

一个yii项目下有好多个子项目,每个子项目都有登录功能,怎么区分不同的session

高级模版中,为了不让前后台共用session,可以在配置文件中起不同的名字
\backend\config\main.php
前台
都说是子项目了,那么就需要开启多个Application至于登录自然可以区分出来。如果每个项目的账号密码都一样,那么只是使用同一个Model。

主配置文件main.php里rules默认的三个正则匹配有什么不一样啊[1.1]

WendyStag阅读(27)

'urlManager'=>array(
    'urlFormat'=>'path',	
    'rules'=>array(
        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
        '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    ),
			
),

匹配如下:
http://localhost:8080/site/123匹配site/view?id=123
http://localhost:8080/site/hello匹配site/hello
http://localhost:8080/site/hello/999匹配site/hello?id=999
不知道你看懂没,我觉得说的挺清楚了。
用markdown格式调调。问问题首先自己要把问题写清楚

关于登陆后右上角么有登录用户名的问题。[2.0]

youthdolphin阅读(30)

登录能够成功,但是就是登陆后右上角logout(admin)括号中的名称为空,登录的对象是自己创建的User对象

对象代码如下
不知道哪里错了,求各位大神帮助QAQ。

/**
* @inheritdoc
*/
class User extends \app\core\base\BaseActiveRecord implements \yii\web\IdentityInterface
{
    public $username;	
    public $password;
    public $rememberMe;
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%user}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['user_name', 'user_pw'], 'required'],
            [['user_name', 'user_pw'], 'string', 'max' => 64]
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'user_name' => 'User Name',
            'user_pw' => 'User Pw',
            'Email' => 'Email',
            'regtime' => 'Regtime',
        ];
    }

    public function scenarios()
    {
    	$parent = parent::scenarios();
    	$parent['login'] = ['username','password'];
    	$parent['register'] = ['user_name','user_pw','Email'];
    	return $parent;
    }
    

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getAssignments()
    {
        return $this->hasMany(Assignment::className(), ['user_id' => 'id']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getItemNames()
    {
        return $this->hasMany(Item::className(), ['name' => 'item_name'])->viaTable('{{%assignment}}', ['user_id' => 'id']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getLeavewords()
    {
        return $this->hasMany(Leaveword::className(), ['userid' => 'id']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getReplywords()
    {
        return $this->hasMany(Replyword::className(), ['userid' => 'id']);
    }
    
    public static function findIdentity($id)
    {
    	return User::findOne(['id'=>$id]);
    }
    
    public static function findIdentityByAccessToken($token, $type = null)
    {
    	foreach (self::$users as $user) {
    		if ($user['accessToken'] === $token) {
    			return new static($user);
    		}
    	}
    
    	return null;
    }
    
    public function getId()
    {
    	return $this->id;
    }
    public function getAuthKey()
    {
    	return $this->auth_key;
    }
    
    public function validateAuthKey($authKey)
    {
    	return $this->auth_key === $authKey;
    }
    
    public function validatePassword($password,$password_hash)
    {
    	return Yii::$app->security->validatePassword($password, $password_hash);
    }
    
    public function login(){
    	if (!$this->validate()) {
    		return  false;
    	}
    	$user = User::findOne(['user_name'=>$this->username]);
    	if($user!==null)
    	{
    		if ($this->password === $user->user_pw) {
    			return Yii::$app->user->login($user, $this->rememberMe ? 3600*24*30 : 0);
    		}
    		return false;
    	}
    	else {
    		return false;
    	}
    }
}

session•auto-start=1
php.ini 里面设置一下session.auto_start=1

git推送失败

Aibysuper阅读(28)

在使用git管理本地代码推送至远程服务器时,服务器的代码没有改变。但是在服务器中使用

git diff --cached

时却可以显示那些代码修改了

root@iZ23ivry5wgZ:/alidata/www/dev_yfp# git diff --cached
diff --git a/readme.txt b/readme.txt
index b14f8d2..a0f31e8 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1 @@
 This is a test document.
-this is aaaaaaaa

这是远程服务器

git diff --cached

的结果

user@USER-PC /d/dev_yfp (master)
$ cat readme.txt
This is a test document.
this is aaaaaaaa

user@USER-PC /d/dev_yfp (master)

这是本地的内容

但是使用

git reset --hard

后就能看到修改了,这是问什么?

你自己建库 用的这个命令? git remote add origin
我是刚使用GIT,你是不是没commit啊 试试 git branch 看看你的分支 git status看看状态呢

关于yii2在apache/nginx下隐藏index.php文件设置问题。

CGfans阅读(29)

我在apache下设置的,

.htaccess

RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php`

在web.php配置中添加

'urlManager' => [
    'class' => 'yii\web\UrlManager',
    // Disable index.php
    'showScriptName' => false,
    // Disable r= routes
    'enablePrettyUrl' => true,
    'rules' => [
        "<controller:\w+>/<action:\w+>/<id:\d+>"=>"<controller>/<action>",
        "<controller:\w+>/<action:\w+>"=>"<controller>/<action>",
    ],
],

但打开网站的时候,提示错误:

Invalid Call – yii\base\InvalidCallException

Setting read-only property: yii\web\Application::urlManager

想知道这个是哪里的问题的? apache的配置应该是没有任何问题的。

另外,在nginx下又是如何配置的?

我找到正确的答案了,正确是在web.php里components的里面写上
遇到同样的问题,你解决了吗?
我的还是不行
‘urlManager’ => [
Options +FollowSymLinks

登录

找回密码

注册