谁一开始就是大神?

PHP 第75页

PHP

无法捕获sql连接异常[2.0]

Gracesuper阅读(62)

PHP Warning – yii\base\ErrorException

mysql_connect(): Access denied for user 'r'@'localhost' (using password: YES)
1. at line 29
20212223242526272829303132333435363738     * @inheritdoc
     */
 
    public function actionIndex()
    {	
 
        $model=new EntryForm();
    	if ($model->load(Yii::$app->request->post()) && $model->validate()) {
    		try{
    		$conn=mysql_connect('localhost',$model->user,$model->psw);
    		}catch(Exception $e){echo $e;}

当前命名空间下没有Exception, 需要指明命名空间..
改成这样 : ... catch(\Exception $e) ..., 加一个反斜杠在前面.
另外多嘴一句, mysql系列扩展函数不是早就不建议用了吗?
PDO 是个好选择 或者 mysqli 系列

namespaceuse作用域问题。[2.0]

Bravequeen阅读(68)

假如说:a.php,定义 namespace yii\a. b.php 里面定义namespace yii\b.我在b.php里面可以使用use yii\a吗?

如果可以的话,那use 的作用域有多广。

再比如说:在同一个服务器上有A站和B站两个网站,A站目录下有上面的a.php ,B站目录下有上面的b.php ,还可以在b.php里面使用use yii\a吗?

一, 第一个问题, 需不需要把文件导入进来?
答案是 : 需要!
但是在各种框架内, 你不会直观的感受到这一点, 因为都实现自动加载了.
早期__autoload 后来 又增强版spl_autoload
现代框架都是遵循composer自动载入标准完成
composer的自动加载标准又和namespace结合了起来, 这个后面补充.
二. 第二个问题, use的作用域是什么, 有多广?
比如 : 同一个服务器上有A站和B站,A站下A\a ,B站有B\b ,还可以在B\b.php里面use A\a吗?`
答案是 : 不知道怎么回答了 = =! 只能说和几个站毫无关系…
在当前请求周期内, 只要先加载到了A\a, 那么随后你都可以use A\a;
这和几个项目没关系, 和文件摆放位置没关系
!!! 只和 当前请求内, 你use的时候 有没有事先声明并include进来有关系;
如果非要说出作用域? 只能看每次请求的实际情况了…
三. 补充
在各种现代框架内(遵循了composer标准的)
一般 只要你use A\a; 就能自动加载进A\a (当然 你确实有声明);
并不用小心翼翼的担心 我use A\a时候, 有没有include进来呀
因为composer就是按照namespace来自动加载类的.
当然并不绝对(未遵循该标准的, composer也提供有自动加载方式)
具体的标准去查一下资料吧 这里就不说了 已经很啰嗦了
了解一下php的语法吧,”use的作用域”这个概念有点”新” :http://php.net/manual/zh/language.namespaces.php

nginx能作为php的生产服务器环境,还能作为哪些语言的?

Kimlove阅读(64)

nginx能作为php的生产服务器环境,还能作为哪些语言的?

只要能实现cgi就行.
所以 理论上讲, 任何一门图灵完备的语言都可以
nginx能作软负载或反向代理,所以理论上后端是什么语言都可以
还可以简单的防护DDOS,WAF防火墙……

[重金悬赏]求完整的windows下yii2安装步骤的教程[2.0]

SlyLion阅读(65)

为了总结经验,准备搜集好的教程,把他编成一本书,在这里:https://github.com/bubifengyun/book-yii2-dev-process

想想四库全书的编者,可能没有发表过一篇著名的文章,但是他们不辞辛苦,汇编中国的文化宝典。做出的贡献是有目共睹的。
为了收集好的素材,特花费本人在该网站的金钱,当然是虚拟的金钱,求稿。

分为几批次求稿。

每次求稿截止时间两周

为每一个优秀教程的提供者,奖励200金币

欢迎大家踊跃参加。

权威指南里的还不够清楚?
http://www.yiichina.com/doc/guide/2.0/start-installation
这是我做的笔记:
1、下载归档文件,并解压到web目录下; 下载地址:http://www.yiichina.com/download
2、将php目录添加到系统的path变量里;
3、运行 “init.bat” 命令,选择开发环境(Development:开发环境; Production:生产环境);
4、执行yii初始化命令 “yii.bat”;
5、新建数据库,并修改数据库配置 “\common\config\main-local.php”;
6、创建相应的数据表,执行命令 “yii.bat migrate”;
7、前台访问页面 http://localhost/advanced/frontend/web/;
对于作者的行为 强烈支持 并表示由衷的感谢。致敬
yii高清视频教程:Yii高清视频教程3个版本

yii表单验证[1.1]

Newfans阅读(71)

model:

public $bPoint;
public $bCard;

/**
 * @return string the associated database table name
 */
public function tableName()
{
	return 'carfree';
}

/**
 * @return array validation rules for model attributes.
 */
public function rules()
{
	// NOTE: you should only define rules for those attributes that
	// will receive user inputs.
	return array(
		array('openid, carmark,bCard realname, telephone, bTime, bArea', 'required'),
		array('flg, service, quality,card_id', 'numerical', 'integerOnly'=>true),
		array('openid, carmark, realname', 'length', 'max'=>50),
		array('telephone, cTime, qTime, sTime, wTime, pTime', 'length', 'max'=>13),
		array('bFlg, quser, suser, wuser', 'length', 'max'=>20),
		array('bArea', 'length', 'max'=>200),
	    array('carmark','match','pattern'=>'/^[\x{4e00}-\x{9fa5}]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[\x{4e00}-\x{9fa5}A-Za-z0-9]{1}$/u'),
	    array('bCard','checkbank'),
		// The following rule is used by search().
		//  Please remove those attributes that should not be searched.
		array('id, openid, carmark, realname, telephone, bTime, bFlg, bArea,bCity,bPoint, cTime, qTime, flg, sTime, wTime, service, quality, pTime, quser, suser, wuser, card_id,bCard', 'safe', 'on'=>'search'),
	);
}

public function  checkbank($attribute,$params)
{
    $card = $this->bCard;
    if($card != '222')
    {
       $this->addError('bCard','银行卡号有误');  
    }
}

views

<?php $form = $this->beginWidget('CActiveForm',array('id'=>'detailForm','enableAjaxValidation'=>false,'enableClientValidation'=>true,'clientOptions' => array('validateOnSubmit'=>true))); ?>
<?php if($flg == 2):?>
<div class="tpy-road-list clearfix">
<div class="tpy-road-lb left"><?php echo $form->label($model,'bCard');?></div>
<div class="tpy-road-input left">
<?php echo $form->textField($model,'bCard',array(
    'class'=>'road-input-txt','placeholder'=>'请输入银行卡号'));?>
<?php echo $form->error($model,'bCard');?>
</div>
</div>
<?php endif;?>

<div class="tpy-road-list clearfix">
<div class="tpy-road-lb left"><?php echo $form->label($model,'carmark');?></div>
<div class="tpy-road-input left">
<?php echo $form->textField($model,'carmark',array(
    'class'=>'road-input-txt','placeholder'=>'请输入车牌号','value'=>$user['carmark']));?>
<?php echo $form->error($model,'carmark');?>
	
</div>
</div>

controller

$flg = $_REQUEST['flg'];
$model = new CarFree;
$model->bCity = 4;
$openid = Yii::app()->session['openID'];
if($openid == '')
{
	echo '您的授权已失效,请重新授权';
}else{
    $user = Publicuser::model()->findByAttributes(array('openid'=>$openid));
}
if($user['realname'] == '微信用户' || $user['realname'] == '微信客户')
{
    $user['realname'] = '';
}

if(isset($_POST['Carfree']))
{
    $model->attributes=$_POST['Carfree'];

    // var_dump($model);exit;
    if($model->validate())
    {
        echo '222';  
    }
}

小弟实在不知model 里的验证方法有何问题,但是一点提交就报错
属性 “Carfree.bCard realname” 未被定义.

rules里的bCard realname是什么鬼?
是指bCard,realname?

算是死在这里了,yii2-redis,求解[2.0]

CandyStone阅读(70)

服务器上直接执行

redis-cli -h localhost -p 7380 

顺利进入

但是安装yii2-redis后配置信息如下

'redis' => [
    'class' => 'yii\redis\Connection',
    'hostname' => 'localhost',
    'port' => 7380,
    'database' => 0,
],

但是在程序中执行如下代码

Yii::$app->redis->hmset('user:1',['name'=>'joe','solary'=>2000]);

却如下错误:

Failed to open redis DB connection (localhost:7380, database=0): 111 - Connection refused

Error Info: Connection refused

实在是不知道为什么,我将 Yii::$app->redis 打印出来,也确实有这个对象.
注:用的高级模板

把 localhost 换成127.0.0.1 试试
这也行???
配置信息:
但是在程序中执行如下代码:
两种情况:

ajax请求没有返回[2.0]

youthKeo阅读(66)

我在view层使用angularjs的$http.post提交数据到服务器,服务器处理数据后把数据上传到一个叫个推的第三方服务器,在第三方处理完成后,再返回数据给view结果无法接收到数据,这个是什么原因导致的啊?求大神们解答

手动提交,确定你的第三方服务器有返回数据先。
angularjs的$http服务不太好用,传值的方式和ajax不一样。我用nodejs也是在req.body里面偶尔获取不到
php在获取值的时候要这么用$res = file_get_contents('php://input','r');

在github上看别人很多都把自己的模块写在vendor里,有什么好处吗?[2.0]

dmfans阅读(67)

在github上看别人很多都把自己的模块写在vendor里,有什么好处吗?

应该是作为公用模块放在vendor里,同时可能还会放到composer服务器上去,方便管理。
估计你是没体验过那种自己电脑上改完代码,轻松一点,所有服务器上的代码就跟着修改的感觉。
那是公用函数写在里面吧
vendor 放的都是框架核心代码 自己写的一般不会放到里面

gii生成的curd表格,怎么加入自义的列[2.0]

Bellapony阅读(75)

将所有列中的未设置改成自定义的字符,该怎么操作呢

方案一
yii\i18n\FormatternullDisplay 属性设置为你想要的.
这将会使得 所有依赖 yii\i18n\Formatter 的地方受到影响(仅值为null时)
方案二
如果不想扩大影响面, 在表格渲染时, 判断并修改之.
文档中自带使用说明

Yii执行的sql问题[1.1]

Bellasuper阅读(72)

CDbCommand 无法执行 SQL 语句: SQLSTATE[HY000]: General error. The SQL statement executed was: DROP TABLE
 IF EXISTS `generate_number`;

这个把这句话复制到createCommand上面也不行,这个是那里的错误?

可以看下你配置的连接数据库的用户是否有删除表的权限。
sql内容是什么?

登录

找回密码

注册