Yii2使用过程中一些小技巧的总结
2015-06-09 23:46
816 查看
1、yii2视图中渲染到另一个视图中
<?php echo \Yii::$app->view->renderFile('@app/views/newView/index.php', [ 'model' => $model ]); ?>
2、yii2将参数传递到layouts/main.php中
//设置当前view的params参数,
$view = Yii::$app->view;
$view->params['layoutData']='test';
3、yii2在视图内进行渲染
<span style="font-family: Arial, Helvetica, sans-serif;"><?php echo \Yii::$app->view->renderFile('@app/views/permission/_form.php', [ 'model' => $model ]); ?></span>
4、yii2使用下拉框设置默认值以及默认选中
echo $form->dropDownList($model, 'selectid', array('1'=>'a','2'=>'b','3'=>'c'), array('class' => 'form-control', 'prompt' => '请选择', "options" => array('key'=> array('selected' => true) )));
5、yii2checkboxList小部件默认选中
$items、$options都是数组格式
$items是要显示的checkbox
<span style="font-size:14px;">array('0'=>'足球', '1'=>'篮球','2'=>'排球')</span>
$options是你默认选中的值
<span style="font-size:14px;">array('0'=>1)</span>
<span style="font-size:14px;"><?= $form->field($model, 'chechkbox')->checkboxList($items,$options)->label(false) ?></span>
6、yii2自带的下载功能
/*
* 下载
*/
public function actionDownload($id){
if ( isset($_GET['id']) ) {
$model = new Model();//你的model
$result = $model->find(array(
'select' => array('字段1', '字段2'),
'condition' => 'id=:id',//条件
'params' => array(':id' => $id)
));
if (!$result) {
throw new CHttpException(404, '文件不存在!');
}
else {
// 服务器端文件的路径
$fontArr = explode('/', $result->url);
$fileName = end($fontArr); //得到文件名字
if (file_exists($result->url)){
//发送两个参数一个是名称上面已经处理好,也可以改成你要的,后面是文件路径
yii::app ()->request->sendFile ($fileName, file_get_contents ($result->url));
}
}
}
}
如果你不需要查数据库的话直接做参数传递就好了
yii::app ()->request->sendFile (文件名, file_get_contents (文件路径));
7、在Yii2的控制器的访问拒绝(即access deny)之后怎么设置flash提示信息
如下:
如上代码,当用户没登录的时候,将会跳转到site/login,现在的问题是想要不跳转,而是显示信息‘你没有访问的权限’,那么代码设置如下:
[/code]
<?php echo \Yii::$app->view->renderFile('@app/views/newView/index.php', [ 'model' => $model ]); ?>
2、yii2将参数传递到layouts/main.php中
//设置当前view的params参数,
$view = Yii::$app->view;
$view->params['layoutData']='test';
3、yii2在视图内进行渲染
<span style="font-family: Arial, Helvetica, sans-serif;"><?php echo \Yii::$app->view->renderFile('@app/views/permission/_form.php', [ 'model' => $model ]); ?></span>
4、yii2使用下拉框设置默认值以及默认选中
echo $form->dropDownList($model, 'selectid', array('1'=>'a','2'=>'b','3'=>'c'), array('class' => 'form-control', 'prompt' => '请选择', "options" => array('key'=> array('selected' => true) )));
5、yii2checkboxList小部件默认选中
$items、$options都是数组格式
$items是要显示的checkbox
<span style="font-size:14px;">array('0'=>'足球', '1'=>'篮球','2'=>'排球')</span>
$options是你默认选中的值
<span style="font-size:14px;">array('0'=>1)</span>
<span style="font-size:14px;"><?= $form->field($model, 'chechkbox')->checkboxList($items,$options)->label(false) ?></span>
6、yii2自带的下载功能
/*
* 下载
*/
public function actionDownload($id){
if ( isset($_GET['id']) ) {
$model = new Model();//你的model
$result = $model->find(array(
'select' => array('字段1', '字段2'),
'condition' => 'id=:id',//条件
'params' => array(':id' => $id)
));
if (!$result) {
throw new CHttpException(404, '文件不存在!');
}
else {
// 服务器端文件的路径
$fontArr = explode('/', $result->url);
$fileName = end($fontArr); //得到文件名字
if (file_exists($result->url)){
//发送两个参数一个是名称上面已经处理好,也可以改成你要的,后面是文件路径
yii::app ()->request->sendFile ($fileName, file_get_contents ($result->url));
}
}
}
}
如果你不需要查数据库的话直接做参数传递就好了
yii::app ()->request->sendFile (文件名, file_get_contents (文件路径));
7、在Yii2的控制器的访问拒绝(即access deny)之后怎么设置flash提示信息
如下:
public function behaviors() { return [ 'access' => [ 'class' => \yii\filters\AccessControl::className(), 'only' => ['create', 'update'], 'rules' => [ // deny all POST requests [ 'allow' => false, 'verbs' => ['POST'] ], // allow authenticated users [ 'allow' => true, 'roles' => ['@'], ], // everything else is denied ], ], ]; }
如上代码,当用户没登录的时候,将会跳转到site/login,现在的问题是想要不跳转,而是显示信息‘你没有访问的权限’,那么代码设置如下:
public function behaviors() { return [ 'access' => [ 'class' => \yii\filters\AccessControl::className(), 'only' => ['create', 'update'], 'rules' => [ // deny all POST requests [ 'allow' => false, 'verbs' => ['POST'] ], // allow authenticated users [ 'allow' => true, 'roles' => ['@'], ], // everything else is denied ], 'denyCallback' => function ($rule, $action) { Yii::$app->session->setFlash('error', 'This section is only for registered users.'); Yii::$app->user->loginRequired(); }, ], ]; }
[/code]
相关文章推荐
- PHP环境安装
- 请求的uri对于此ftp命令无效
- PHP+mysql实现分页
- Yii安装
- php中字符串的拼接
- 使用ContentProvider共享数据
- Yii 自定义表单验证规则和客户端验证
- Yii2基于角色的访问控制权限RBAC表结构原理分析
- php扩展开发笔记(4)常用宏整理(更新中)
- PrintDocument,PrintDialog与PrintPreviewDialog
- Yii2验证器(Validator)
- 用smtplib登录qq邮箱发邮件
- PHP设计模式——中介者模式
- Yii2中多表关联查询(join、joinwith)
- 解决Notice错误,性能竟然提升了1000多倍!
- Yii学习笔记之三(在windows 上安装 advanced )
- thinkphp使用flash上传验证登录问题
- Yii2 使用十七 国际化
- Yii学习笔记之二(使用gii生成一个简单的例子)
- php实现工厂模式