谁一开始就是大神?

PHP 第98页

PHP

yii2进行页面跳转的时候带点提示信息

Noblequeen阅读(23)

yii2 redirect进行页面跳转的时候, 可以像页面传递数据?比如下面的代码

return $this->redirect(['member/security']);

我一般是操作数据库后进行跳转,到底操作成功否? 我想带个提示信息给页面,让页面显示一下然后提示信息就没了?
该怎么办?
我现在的做法是将提示信息存放到session中,然后跳转后用了一次就删掉! yii2中有更好的办法?

使用yii的flash数据,其实他也是session,哇哈哈哈哈!
为了保留一个完整的request-response流程,建议还是使用return response对象的方法。不过还有一种折中的办法就是封装一个显示信息的中间页,把你要显示的信息和url传过去,等显示完信息后,再跳转到目标地址。
不过我还是建议使用flash数据的方法。
return $this->redirect(['member/security', 'id' => 1]); 这样不行吗?
高级模板下可以直接使用这个:
基础模板我没用过,不知道它那里有没有高级模板下 frontend/widgets/Alert.php 这个小插件,有的话也是可以用的。
$this->redirect( Yii::$app->getUrlManager()->createUrl(‘url’));
综合@shiyang和@nomeore两位大大的答案完成了需要的效果,感谢
return $this->success([‘/admin/index’]);

这个表单如何写成widget形式的,搞不啊,总是变形!求大神搭救![2.0]

DmLion阅读(31)

<fieldset>
<form class="subscriptionForm" method="post">
     <input id="subscriptionForm" class="inputForm" type="text" value="Enter Your Email Address" onFocus="if (this.value=='Enter Your Email Address') this.value=''" onBlur="if (this.value==''){this.value='Enter Your Email Address'}" />
     <input type="submit" id="submitButton" class="transition" value="Send">
</form>					
</fieldset>

最好是上传一张图片为最佳

如何不用registerJs直接在view里写js[2.0]

Jasonqueen阅读(27)

资源包里的js文件都是加载在尾部的,启用了layout。这样我在view里直接写javascript就在出现在引入其他js文件前面,导致无效,用registerJs格式又不好整,求办法!

想加载在头部,给你个例子,注意$jsOptions
那就用registerJsFile

怎样把markdown编辑器像舰长一样应用到页面中?[2.0]

coolKeo阅读(29)

试了很多,都没成功,谁有实例或者有过部署 markdown 经验,不胜感激啊。成功让我的页面部署上 markdown 编辑器,888分抱回家~~~

我用的是这个编辑器。
GitHub地址:http://github.com/toopay/bootstrap-markdown
DEMO演示:http://www.codingdrama.com/bootstrap-markdown/
拿去用吧,把分给我留下!
Bootstrap-Marokdown
任性了哈…
下次问个一次性花完钱的问题
我就是需要这个

关联表的删除报错捕获[1.0]

Fionaqueen阅读(28)

我有a表和b表,他们有关联关系,b表是a表的外表,当我删除b中的内容时,会报代码级别的错误,那我怎样通过异常抛出来捕获异常,而不是报代码级别的错误?

以下是代码:

public function actionRequirementDelete($id,$page)
{
    $page = $page + 1;
    $requirement_data = Requirement::model()->findByPk($id);
    
    $transaction = $requirement_data->dbConnection->beginTransaction();
    try{
        if($requirement_data->delete()){
            $this->redirect(array('/user/employer','page'=>$page));
        }else{
            throw new Exception("订单删除失败");
        }
        $transaction->commit();
    }catch (Exception $e){
        $transaction->rollback();
        echo $e->getMessage();
    }
}

你的这个需求,其实有好几种解决方式:
1.是否一定需要报错?是否可以考虑在数据库里设置一下外键删除时的动作,比如CASCADE ?
2.如果按你说的,你需要删除时判断是否有从属数据,那么你应该先判断从属数据是否存在,而不是通过异常去处理,因为异常出现的可能性很多,不一定是因为存在从属数据导致。
3.我看到了你的异常捕获,
这种形式是正确的,但是你的思路错误,你认为delete()返回非true值时应该抛出一个异常,但是事实上delete()方法在删除报错时,内部已经先一步抛出了异常,也就是说,你的throw new Exception("订单删除失败");应该是不会触发的。
心有余而力不足,唉,不会
自定义一个exception 比如UserException 或者OrderException等等,然后只捕获这个异常 ,其他的异常让系统处理去吧
php的错误和异常不是一个统一的概念,php有的错误是无法捕获的,比如致命错误和编译错误等,如果抛出的是这两种错误,你没办法。如果抛出的是警告、提醒等,好像通过设置是可以通过CException捕获的。
可以先做unlinkAll,把有外键依赖的关系表中的数据先删除,类似
可不可以关联修改?

Yii2权限管理,我写在了beforeAction里,但输出json时就出错了[2.0]

NiceKeo阅读(28)

我写了个CommonController,其他Controller都继承这个类。
我在CommonController里写了输出JSON的方法

public function renderJson($params = array()) {
    Yii::$app->response->format = Response::FORMAT_JSON;
    return $params;
}

在CommonController的beforeAction写了验证

$isAjax = Yii::$app->request->getIsAjax();
//未登录
if (\Yii::$app->user->isGuest) {
    if ($isAjax) {
        return $this->renderJson(array(
            'status' => -1,
            'message' => '请先登录',
            'url' => Yii::$app->getHomeUrl()
        ));
    } else {
        return $this->goHome();
    }
}else{
    return parent::beforeAction($action);
}

这样,如果不是ajax请求就没问题,会跳到登录 ,但是如果是ajax请求。就会出错

PHP Notice 'yii\base\ErrorException' with message 'Trying to get property of non-object' 

求解答

beforeAction返回的应该是true或者false,要直接输出的话,应该还是返回false,通过response指定输出的内容,类似这样
试试将Response::FORMAT_JSON换成'json',如果OK的话,说明CommonController没有这条语句:use yii\web\Response;

写出这样的POST[2.0]

littleslim阅读(30)

$_POST['images'] = serialize($_POST['images']);

怎么写出这个在YII2里。用YII2的方法。

研究了一下,目前有了具体答案了
Yii::$app->request->post();
以上这一句的作用是判断是否是通过post提交,且可以给提交的name设定一个默认值,比如:
Yii::$app->request->post('name','user_name');
我有发现当第二个参数不设定的时候返回的就是null,没啥用途。
真正让数据进入model层的在于 Model 下面的load()方法,载入的是提交后的值如下代码:
以上就是获取提交数据的简单粗暴的方法。到这里依然还没进入主题。
根据楼主的需求是,要对提交的值进行再次操作,也就是在入库前做些序列化也好或者是对数据进行进一步处理的好。怎么做呢?
从追踪代码来看,绕了好大的一个圈子,最后回到了Model层上,这个类中的某些方法完全可以完成我们的需求,请看代码:
总结:主要的核心症结在于,post过来后的数据,接下来的工作是由model层来完成的。就不要继续玩$_POST了。
希望可以帮到你!
如果大家觉得还有其他的比较方便的方式,还望告知!
我是鬼鬼,鬼一浪人是也!201150612
$_POST['images']是什么类型的数据?为什么要序列化?
Yii::$app->request->post();//$_POST

登录

找回密码

注册