yii2 用不用yii2 widgetss

yii2表单使用 - 博客频道 - CSDN.NET
Controller控制器层代码
VIEWS视图层代码
MODELS层表单验证
song_csdn1550
排名:千里之外
(44)(4)(7)(1)(1)(1)yii extensions - yii2 kartik-v/yii2-widgets installation - Stack Overflow
Join the Stack Overflow Community
Stack Overflow is a community of 6.9 million programmers, just like you, helping each other.
J it only takes a minute:
to use kartik sidenav widget.
I installed kartik-v/yii2-widgets extension via composer.
I can see it here: advanced\vendor\kartik-v\yii2-widget-sidenav and extensions.php has also been modified:
'kartik-v/yii2-widget-sidenav' =&
'name' =& 'kartik-v/yii2-widget-sidenav',
'version' =& '9999999-dev',
'alias' =&
'@kartik/sidenav' =& $vendorDir . '/kartik-v/yii2-widget-sidenav',
However, when I try to use it in my view,
use kartik\widgets\SideN
echo SideNav::widget([
It shows Class 'kartik\widgets\SideNav' not found error
What is wrong ?
becuase author not update documentation, namespace become kartik\sidenav\SideNav,and you should use this.
You should use the kartik\sidenav\SideNav namespace, i recommend to use an IDE like
since it will auto detect the namespaces and add them when needed.
Finally it should be use kartik\sidenav\SideN
You should install yii2 kertik-v/widget-sidenav, that means you should use command prompt with composer.org
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
rev .25469
Stack Overflow works best with JavaScript enabledYii布局(Layouts)
Yii布局(Layouts)
Windows10用户联盟QQ群:
布局代表多个视图的公用部分。例如,页眉和页脚。&默认情况下,布局应存放在&views/layouts&文件夹中。
让我们看一下基本应用程序模板的主(main&)布局 -
/* @var $this \yii\web\View */
/* @var $content string */
use yii\helpers\H
use yii\bootstrap\N
use yii\bootstrap\NavB
use yii\widgets\B
use app\assets\AppA
AppAsset::register($this);
&?php $this-&beginPage() ?&
&!DOCTYPE html&
&html lang = "&?= Yii::$app-&language ?&"&
&meta charset = "&?= Yii::$app-&charset ?&"&
&meta name = "viewport" content = "width = device-width, initial-scale = 1"&
&?= Html::csrfMetaTags() ?&
&title&&?= Html::encode($this-&title) ?&&/title&
&?php $this-&head() ?&
&?php $this-&beginBody() ?&
&div class = "wrap"&
NavBar::begin([
'brandLabel' =& 'My Company',
'brandUrl' =& Yii::$app-&homeUrl,
'options' =& [
'class' =& 'navbar-inverse navbar-fixed-top',
echo Nav::widget([
'options' =& ['class' =& 'navbar-nav navbar-right'],
'items' =& [
['label' =& 'Home', 'url' =& ['/site/index']],
['label' =& 'About', 'url' =& ['/site/about']],
['label' =& 'Contact', 'url' =& ['/site/contact']],
Yii::$app-&user-&isGuest ?
['label' =& 'Login', 'url' =& ['/site/login']] :
'label' =& 'Logout (' . Yii::$app-&user-&identity-&username.')',
'url' =& ['/site/logout'],
'linkOptions' =& ['data-method' =& 'post']
NavBar::end();
&div class = "container"&
&?= Breadcrumbs::widget([
'links' =& isset($this-&params['breadcrumbs']) ? $this&params
['breadcrumbs'] : [],
&?= $content ?&
&footer class = "footer"&
&div class = "container"&
&p class = "pull-left"&& My Company &?= date('Y') ?&&/p&
&p class = "pull-right"&&?= Yii::powered() ?&&/p&
&?php $this-&endBody() ?&
&?php $this-&endPage() ?&&
这种布局是所有视图的通用页面生成HTML页面。$content&变量是视图渲染内容的结果。以下方法引发有关渲染过程事件,以便在其他地方注册的脚本和标签会被适当注入&-
head()&-&应在头部分调用。产生一个占位符,将与定位于头部位置已注册的 HTML 来代替。
beginBody()&-&应在&body&部分的开头调用。触发&EVENT_BEGIN_BODY&事件。产生将使用定位在&body&已注册的HTML,将替换占位符开始位置。
endBody()&-&应在&body&结束部分被调用。触发&EVENT_END_BODY&事件。
&产生一个占位符,这将有针对性的在&body&的结束位置使用已注册的HTML来代替。
beginPage()&-&应在布局的开头被调用。触发EVENT_BEGIN_PAGE&事件。
endPage()&-&应在布局结束时调用。触发&EVENT_END_PAGE&事件。
第1步&-&在目录&views/layouts&里面创建一个名为&newlayout.php&的文件并使用下面的代码。
/* @var $this \yii\web\View */
/* @var $content string */
use yii\helpers\H
use yii\bootstrap\N
use yii\bootstrap\NavB
use yii\widgets\B
use app\assets\AppA
AppAsset::register($this);
&?php $this-&beginPage() ?&
&!DOCTYPE html&
&html lang = "&?= Yii::$app-&language ?&"&
&meta charset = "&?= Yii::$app-&charset ?&"&
&meta name = "viewport" content = "width = device-width, initial-scale = 1"&
&?= Html::csrfMetaTags() ?&
&title&&?= Html::encode($this-&title) ?&&/title&
&?php $this-&head() ?&
&?php $this-&beginBody() ?&
&div class = "wrap"&
&div class = "container"&
&?= $content ?&
&footer class = "footer"&
&div class = "container"&
&p class = "pull-left"&& My Company &?= date('Y') ?&&/p&
&p class = "pull-right"&&?= Yii::powered() ?&&/p&
&?php $this-&endBody() ?&
&?php $this-&endPage() ?&
在这里,我们已经移除了顶部的菜单栏。
第2步&-&要将布局应用到SiteController中,需要将&$layout&属性添加到&SiteController&类。
namespace app\
use yii\filters\AccessC
use yii\web\C
use yii\filters\VerbF
use app\models\LoginF
use app\models\ContactF
class SiteController extends Controller {
public $layout = "newlayout";
/* other methods */
第3步&-&现在,如果到Web浏览器打开&SiteController&中的任何视图,如打开URL=& ,您将看到的布局已经发生了变化。
第4步-&要注册的各种&meta&标签,可以在内容视图中调用 yii\web\View::registerMetaTag()&函数。
第5步&-&修改 SiteController 的“About”视图 - views/site/about.php。
/* @var $this yii\web\View */
use yii\helpers\H
$this-&title = '关于我们';
$this-&params['breadcrumbs'][] = $this-&
$this-&registerMetaTag(['name' =& 'keywords', 'content' =& 'yii, Yii教程, Yii视图,
meta, 标签']);
$this-&registerMetaTag(['name' =& 'description', 'content' =& '这是一个页面的描述!'], 'description');
&div class="site-about"&
&h1&&?= Html::encode($this-&title) ?&&/h1&
This is the About page. You may modify the following file to customize its content:
&code&&?= __FILE__ ?&&/code&
我们刚刚注册了两个 meta 标签&-&keywords 和 description.
第6步&-&现在打开&&,你会发现在页面头部的 meta 标签内容如下面的屏幕截图。
视图触发几个事件&-
EVENT_BEGIN_BODY&-&触发了布局通过调用&yii\web\View::beginBody()
EVENT_END_BODY&-&触发了布局通过调用&yii\web\View::endBody()
EVENT_BEGIN_PAGE&-&触发了布局通过调用&fyii\web\View::beginPage()
EVENT_END_PAGE&-&触发了布局通过调用&yii\web\View::endPage()
EVENT_BEFORE_RENDER&-&在控制器开始渲染一个文件时触发
EVENT_AFTER_RENDER&-&渲染文件后触发
也可以对这些事件的响应内容插入到视图。
步骤7-&要显示当前的日期和时间在&SiteController&的&actionAbout&动作中,以下面的这种方式。
public function actionAbout() {
Yii::$app-&view-&on(yii\web\View::EVENT_BEGIN_BODY, function () {
echo date('Y-m-d H:i:s');
return $this-&render('about');
第8步&-&在浏览器中访问URL=&&,将会看到下面的内容。
为了使视图更易于管理,你应该&-
将复杂的视图分成几个小块文件
使用公用的HTML代码部分(页眉,页脚,菜单等)的布局
使用小部件-widgets
视图应该&-
包含HTML和简单的PHP代码格式化和呈现数据。
无处理请求
不修改模型属性
不执行数据库查询
标签:&&&&&&&&&&&&Yii数据Widgets
Yii数据Widgets
Windows10用户联盟QQ群:
Yii提供了一组小部件用于显示数据。您可以使用&DetailView控件显示一条记录。在&ListView&小部件,以及网格视图可用于过滤,排序和分页功能,以显示记录在表格中。
准备数据库
第1步&-&创建一个新的数据库。数据库可以通过以下两种方式进行。
在终端运行&mysql -u root –p
登录数据后,通过执行&CREATE DATABASE mystudy CHARACTER SET utf8 COLLATE utf8_general_&创建一个新的数据库;
第2步&-&在&config/db.php&文件中配置数据库连接。下面的配置可根据自己的实际情况配置。
'class' =& 'yii\db\Connection',
'dsn' =& 'mysql:host =dbname = mystudy',
'username' =& 'root',
'password' =& '',
'charset' =& 'utf8',
第3步&-&在项目根文件夹执行:yii migrate/create test_table 。此命令将用于创建管理数据库数据库迁移。&migrations文件会出现在项目的根的&migrations&文件夹中。
第4步&-&修改迁移文件(在本示例中生成的是:m611_test_table.php),并使用以下这些代码。
use yii\db\S
use yii\db\M
class m611_test_table extends Migration {
public function up() {
$this-&createTable("user", [
"id" =& Schema::TYPE_PK,
"name" =& Schema::TYPE_STRING,
"email" =& Schema::TYPE_STRING,
$this-&batchInsert("user", ["name", "email"], [
["User1", ""],
["User2", ""],
["User3", ""],
["User4", ""],
["User5", ""],
["User6", ""],
["User7", ""],
["User8", ""],
["User9", ""],
["User10", ""],
["User11", ""],
public function down() {
//$this-&dropTable('user');
上述迁移创建用户表,它包含了以下这些字段:id,&name,&和&email。它还增加了一些演示用户帐号。
第5步&-&在项目的根目录内运行:&yii&migrate& 来迁移应用到数据库。执行结果如下图所示:
第6步-现在,我们需要为user表创建模型。为了简便起见,我们将使用GII代码生成工具。在浏览器中打开&url:&&。
然后,点击&“Model&generator”&下的&“Start”按钮。&填写表名(“user”)和模型类(“MyUser”),单击“Preview”按钮,最后点击&“Generate”&按钮。
MyUser 文件忆经生成在&models&目录。
DetailView Widget
DetailView&小部件显示单个模型的数据。属性&$attributes&定义哪个模型属性需要显示。
第1步&-&添加&actionDataWidget()方法到&SiteController&控制器中。
public function actionDataWidget() {
$model = MyUser::find()-&one();
return $this-&render('datawidget', [
'model' =& $model
在上面的代码,我们可以看到一个&MyUser&模型,并把它传递给数据小工具(datawidget)视图。
第2步&-&在&views/site&文件夹内创建一个视图文件&datawidget.php。
use yii\widgets\DetailV
echo DetailView::widget([
'model' =& $model,
'attributes' =& [
//formatted as html
'name:html',
'label' =& 'e-mail',
'value' =& $model-&email,
第3步&-&在浏览器中打开网址:&,将看到&DetailView&控件的典型用法的结果。
标签:&&&&&&&&&&&&

我要回帖

更多关于 yii2 admin 的文章

 

随机推荐