當前位置:首頁 » 網頁前端 » 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) 「*」符:用以表示該輸入項,讀入後不賦予相應的變數,即跳過該輸入值。