当前位置:首页 » 网页前端 » yii2前端页面
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

yii2前端页面

发布时间: 2023-02-08 13:46:50

㈠ web app前端能用yii2开发吗



<?php

namespace appassets;

use yiiwebAssetBundle;

class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
];
public $js = [
];
public $depends = [
'yiiwebYiiAsset',
'yiiootstrapBootstrapAsset',
];
}

其中项目中公用的css 和 js 可以分别定义在css,js中,对应路径也支持@web等别名。

使用资源包

在布局layout/main.php(默认,可以定义其他布局文件,然后在对应的controller中定义$layout = ‘xxx’)中,

use appassetsAppAsset;
AppAsset::register($this); // $this 代表视图对象

加载其他资源
但是如果某个视图需要额外加载某个资源的话,可以在视图中单独加载,这里只是针对布局中使用的资源配置。具体方法如下:

在AppAsset.php中定义两个方法:

//定义按需加载JS方法,注意加载顺序在最后
public static function addScript($view, $jsfile) {
$view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'appassetsAppAsset']);
}

//定义按需加载css方法,注意加载顺序在最后
public static function addCss($view, $cssfile) {
$view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'appassetsAppAsset']);
}

然后在视图中,直接调用加载即可

AppAsset::addCss($this,'/css/xxx/xx.css');
AppAsset::addScript($this,'/js/xx/xx.js');

需要注意的是加载顺序。
当然也可以不在AppAsset.php中定义这两种方法,直接在视图中调用:

$this->registerCssFile('/css/xx/xx.css', [AppAsset::className(), 'depends' => '']);

资源依赖
在资源包中的$depends属性,是用来定义抵赖关系的,比如在AppAsset.php中我们定义:

public $depends = [
'yiiwebYiiAsset',
'yiiootstrapBootstrapAsset',
];

就说明依赖YiiAsset和BootstrapAsset,这两个资源包是框架定义好的,我们可以看下具体内容就明白了

<?php
namespace yiiweb;

class YiiAsset extends AssetBundle
{
public $sourcePath = '@yii/assets';
public $js = [
'yii.js',
];
public $depends = [
'yiiwebJqueryAsset',
];
}

这里可以看到定义的是sourcePath,@yii/assets指的的/vendor/yiisoft/yii2/assets这里的路径,会发现这里恰好有js中定义的yii.js,但是由于这里的目录是不能供web访问的,所以框架会根据这里的配置,将这里的资源发布到web/assets/下面(或者建立链接的方式,具体可以配置,这里不详细描述)。

在来看$depends,这里定义了依赖JqueryAsset,其实就是依赖jquery.js的,具体也可以看JqueryAsset就会明白。

class JqueryAsset extends AssetBundle
{
public $sourcePath = '@bower/jquery/dist';
public $js = [
'jquery.js',
];
}

所以根据依赖,框架会先加载jquery.js,然后是yii.js,最后是视图加载的js。

㈡ yii2返回上一个页面的上一个页面怎么写

可以用confirm提示信息,但是confirm两个按钮是写死的确定和取消,网上可以搜一下自己定义按钮名称的写法,但是那样太麻烦了。我建议可以换个思路,弹出对话框添加数据成功,是否继续添加,点确定重返页面清空表单,点取消则自动跳转到查询页面

㈢ 大家好,请问一下yii2.0怎么实现页面静态化


//基本方式
//file_put_contents()函数
//使用php内置缓存机制实现页面静态化—output-bufferring.

//1.使用PHP文件读写功能生成静态页面
<?
$out1="<html><head><title>PHP网站静态化教程</title></head><body>欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法</body></html>";
$fp=fopen("leapsoulcn.html","w");
if(!$fp)
{
echo"SystemError";
exit();
}
else
{
fwrite($fp,$out1);
fclose($fp);
echo"Success";
}

2.利用PHP模板生成静态页面

PHP模板实现静态化非常方便,比如安装和使用PHP Smarty实现网站静态化。
在使用Smarty的情况下,也可以实现页面静态化。下面先简单说一下使用Smarty时通常动态读取的做法。
一般分这几步:
1、通过URL传递一个参数(ID);
2、然后根据此ID查询数据库;
3、取得数据后根据需要修改显示内容;
4、assign需要显示的数据;
5、display模板文件。
Smarty静态化过程只需要在上述过程中添加两个步骤。
第一:在1之前使用 ob_start() 打开缓冲区。
第二:在5之后使用 ob_get_contents() 获取内存未输出内容,然后使用fwrite()将内容写入目标html文件。

//3.用PHP输出控制函数(OutputControl)/ob缓存机制生成静态页面

<?
ob_start();
echo"<html>".
"<head>".
"<title>PHP网站静态化教程</title>".
"</head>".
"<body>欢迎访问脚本之家,本文主要介绍PHP网站页面静态化的方法</body>".
"</html>";
$out1=ob_get_contents();
ob_end_clean();
$fp=fopen("leapsoulcn.html","w");
if(!$fp)
{
echo"SystemError";
exit();
}
else
{
fwrite($fp,$out1);
fclose($fp);
echo"Success";
}
?>

//或者
<?php
$gid=$_GET['gid']+0;//商品id
$goods_statis_file="goods_file_".$gid.".html";//对应静态页文件
$expr=3600*24*10;//静态文件有效期,十天
if(file_exists($goods_statis_file)){
$file_ctime=filectime($goods_statis_file);//文件创建时间
if($file_ctime+$expr-->time()){//如果没过期
echofile_get_contents($goods_statis_file);//输出静态文件内容
exit;
}else{//如果已过期
unlink($goods_statis_file);//删除过期的静态页文件
ob_start();

//从数据库读取数据,并赋值给相关变量

//include("xxx.html");//加载对应的商品详情页模板

$content=ob_get_contents();//把详情页内容赋值给$content变量
file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中
ob_end_flush();//输出商品详情页信息
}
}else{
ob_start();

//从数据库读取数据,并赋值给相关变量

//include("xxx.html");//加载对应的商品详情页模板

$content=ob_get_contents();//把详情页内容赋值给$content变量
file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中
ob_end_flush();//输出商品详情页信息

}

?>

㈣ yii2 asset里面的js和css写好了.怎么引入到页面上去

在页面里引入bootstrap的css和js文件的方法是通过moles的loader加载的。1、加载js文件:varpath=require('path');mole.exports={context:path.resolve('js'),entry:"./index",output:{path:path.resolve('build/js/'),publicPath:'/public/assets/js/',filename:"bundle.js"}2、加载css文件:{test:/\.css$/,loaders:'style-loader!css-loader',exclude:/node_moles/}3、完整的写法如图:

㈤ 如何修改yii2 admin2的前端页面

用户表加个权限字段啊1 2都可以 1是超管 2普通管理 aaa登录的时候查询权限 如果权限是2直接在页面写判断弹出无权限就好了啊

㈥ Yii2 Html净化防止xss攻击,求大神解释如下代码

确保所有输出内容都经过 HTML 编码。禁止用户提供的文本进入任何 HTML 元素属性字符串。根据 msdn.microsoft.com/library/3yekbd5b 中的概述,检查 Request.Browser,以阻止应用程序使用 Internet Explorer 6。了解控件的行为以及其输出是否经过 HTML 编码。如果未经过 HTML 编码,则对进入控件的数据进行编码。使用 Microsoft 防跨站点脚本库 (AntiXSS) 并将其设置为您的默认 HTML 编码器。在将 HTML 数据保存到数据库之前,使用 AntiXSS Sanitizer 对象(该库是一个单独的下载文件,将在下文中介绍)调用 GetSafeHtml 或 GetSafeHtmlFragment;不要在保存数据之前对数据进行编码。对于 Web 窗体,不要在网页中设置 EnableRequestValidation=false。遗憾的是,Web 上的大多数用户组文章都建议在出现错误时禁用该设置。该设置的存在是有原因的,例如,如果向服务器发送回“<X”之类的字符组合,该设置将阻止请求。如果您的控件将 HTML 发送回服务器并收到图 5 所示的错误,那么理想情况下,您应该在将数据发布到服务器之前对数据进行编码。这是 WYSIWYG 控件的常见情形,现今的大多数版本都会在将其 HTML 数据发布回服务器之前对该数据进行正确编码。对于 ASP.NET MVC 3 应用程序,当您需要将 HTML 发布回模型时,不要使用 ValidateInput(false) 来关闭请求验证。只需向模型属性中添加 [AllowHtml] 即可,如下所示:

㈦ yii2框架的index页面中怎么让<font>标签展示出来

格式字符串
格式字符串的一般形式为:
%[*][输入数据宽度][长度]类型
其中有方括号[]的项为任选项。各项的意义如下:
1) 类型:表示输入数据的类型,其格式符和意义如下表所示。
格式 字符意义
d 输入十进制整数
o 输入八进制整数
x 输入十六进制整数
u 输入无符号十进制整数
f或e 输入实型数(用小数形式或指数形式)
c 输入单个字符
s 输入字符串
2) “*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。