谁一开始就是大神?

PHP 第36页

PHP

同步更新

HaHlove阅读(91)

当手机端添加一条数据到数据库中,php可以实现告知PC端(如果PC端页面一直处于打开的状态),

推荐用workerman
可以啊,复杂点就是通过socket推送,简单点就用js轮询
可以用swoole的webSocket实现
swoole,workman都可以
简单一点,不要求效率的话就用ajax轮询

怎样暂时不使用yii的错误管理?[2.0]

Wendycrab阅读(90)

无标题.png
如图,我想忽略这个错误,但是yii框架拦截了这个错误,该怎样做才能执行catch块中的代码?

你把catch的参数Exception $e改成\Exception $e试试,会有奇效哦。
这就是因为你没有捕捉到这个exception,就被更上层的yii捕捉到了。
如果你想让出错以后还go on的话,就用finally。
如果你是想捕捉错误的话,就用楼上的办法改。

动态数据库连接[2.0]

JadeKeo阅读(93)

请教各位大神 怎么动态去连接数据库呢
小弟现在做数据库分库 每个库里面的表是一样的 需要先访问到控制器 然后再判断具体连接哪个库
怎么在控制器里设置数据库连接呢 设置完在models里面的数据库操作都可以使用呢

在controller的beforeAction里面,重新设置db组件呗。
其中的$dbHost, $dbName, $dbUser, $dbPassword都是可以动态指定的。

dataProvider分页[2.0]

NiceCherry阅读(82)

dataProvider = new ActiveDataProvider([

			'query' => $data,
			'pagination' => [
				'pageSize' => 10,
			],
		]);

这个query=>可以是数组嘛,如果是数组格式的话,怎么用dataProvider 分页

searchmodel配置呀
根据ActiveDataProvider中可以知道:
说明$query数据是model
把数组转成model了,有点好奇,数组为什么要分布呢,只为了方便浏览吗?
差不多吧。

请教yii2配置文件的一些问题[2.0]

Swiftqueen阅读(82)

  1. environments dev frontend main-local.php 新增配置 db1 => [ ‘host’ => 172.16.0.100]
  2. 开发人员更新项目 ./init
  3. 修改 frontend config main-local.php db1 => [ ‘host’ => 192.168.1.200]
  4. 项目新增配置 environments dev frontend main-local.php 新增配置 db2 => [ ‘host’ => 172.16.0.101]
  5. 开发人员更新项目 ./init frontend config main-local.php 提示需要覆盖,
  6. 之前的修改db1 被覆盖了 又得去把db1 改成本地了

疑问 , 这个流程本身是这样 还是我的错了 如果业务需求频繁, 这个有点蛋疼呀, 而且是必须配置的

init 是用以初始化项目确定项目是处于生产还是开发环境的。并不是你说的用以更新项目的。也就是说,在你电脑爆炸前,你基本上只会用到一次 init。
如果你需要新增 db2,则只需要将 db2 写入main.php,那么别人拉取代码的时候就会获得你的 db2 。并且即使执行 init ,也不会影响到你的 main.php。
不能通过.json把main-local.php忽略掉么?
可以模仿laravel配置做法,就可以解决这种问题
加db2时把db1删除了?

SDK引入Yii2框架里面[2.0]

Noblelemon阅读(82)

现在有一个短信的SDK 我怎么能把它融入到Yii2 框架里面呢?有哪位知道!!!!急求

他的里面存在一些require 有自己的自动加载器

QQ图片20170118170343.png
1.png
在你的frontend目录新建一个component文件夹。。把短信的sdk集成改为一个类文件,放在component文件夹里面。并写好命名空间。然后在config里面的main.php的components数组加入我后面那张图片的参数。class写你的短信类的路径,下面的alipay_config参数是调用自己配置的第三方类的时候直接帮你初始化配置参数了。相当于__construct函数。这里应该填你的短信sdk的appid和密钥之类的
控制器中直接Yii::$app->h5alipay->functionname();就是直接调用引用的sdk的方法
加不了。。。。还要验证。。你用的是谁家的短信?
sdk不都全是方法吗。。。。根据实际情况。。。合并代码啊。。。我只能告诉你方法。。。具体怎么做是要看你自己的。。。多折腾一下
楼主的意思是sdk是一个文件夹,你在这个sdk里面写一个类调用方法,然后引入这个类就好了

yii2加载视图之前对数据处理[2.0]

likelyCherry阅读(86)

yii2 加载 视图之前要对模型里的数据进行处理,是否是在beforeRender里操作呢?
具体用法是?

在你对应的search.php中,找到:
$dataProvider = new ActiveDataProvider([
这是对应表的所有数据,要处理可以加条件,比如
‘query’ => $query->where([‘username’=>$username])
models中用fields方法可处理
不是beforeRender里操作,觉得可以在获取数据模型前处理,或在视图里处理,如果是业务逻辑的话可以直接在模型里定义好方法
action加载了数据传给view,可以在action中处理完数据再传给view
不太理解加载视图之前,数据绝大多数都是在渲染视图之前处理的嘛,还有你说的处理是怎样的处理?

saveattributes['id']方法获取不到id号[2.0]

fationnice阅读(88)

$userOpenId = new UserOpenId([
    'openid'=>(string)$openId,
    'opentype'=>$openType,
    'userName'=>$userName
]);
if($userOpenId->save()){
    $id = $userOpenId->attributes['id'];var_dump($id);exit;
}

public function rules()
{
    return [
        [['id'], 'integer'],
        [['userId'], 'integer'],
        [['opentype'], 'string', 'max' => 60],
        [['userName'], 'string', 'max' => 60],
        [['openhash'], 'string', 'max' => 32],
        [['openid'], 'string', 'max' => 255],
        [['opentype', 'openhash'], 'unique', 'targetAttribute' => ['opentype', 'openhash'], 'message' => 'The combination of Opentype and Openhash has already been taken.'],
    ];
}

id 在数据库里有没有设置为自动递增

$model->save()用此方法新建,更新数据都失败,打印错误是array();[2.0]

ACGbubble阅读(84)

public function actionUpdate($id)
{
    $model = $this->findModel($id);

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        // print_r($model->getErrors());
        // exit;
        return $this->render('update', [
            'model' => $model,
        ]);
    }
}

数据库的读取没有问题。就是新建,更新不行。$model->load(Yii::$app->request->post()) 这个条件没毛病。用navicate可以手动更改数据库。我这个博客就是魏曦老师的blogdemo2他在视频里就没有报错,不知道大家有没有听过他的视频。

$model->load(Yii::$app->request->post())
这里没有成功载入
save 之前打印下 $model 看$model->id有没有值,没值的话,save肯定是新建啊

地正常运行的项目,git到服务器上出现403[2.0]

loveseagull阅读(88)

本地做了一个项目,可以正常运行,直接拷贝到服务器上也可以正常运行,但是用git上传到服务器的话会出现403(前提是我已经给了777权限,allowip我也设置了),这种情况应该怎么破?

这跟git有关系?
git只是帮你把文件搬运到服务器上去。
估计你不是所有的配置都纳入git管理了,或者说你把本地的配置通过git传上服务器了。
vendor 少了这个composer一下就可把这个文件给拉下来

登录

找回密码

注册