Wiki
查询一个作者(Author)写的所有书籍(Book),其中Author 和 Book 是对应的 Model 作者模型:Author Class Author extend \yii\db\ActiveRecord { ··· public function getBook() { return $this->hasMany(Book::className(), ['author_id'=>'id']); } ··· } 书籍模型:Book Class Author extend \yii\db\ActiveRecord { ··· } 查询一个id=1的作者的信息及其所写的所有书籍: $authorInfo = Author::find()->where(['id'=>1])->with('book')->one(); hasOne 是1对1,hasMany 是 1对多,写法基本一致;
1年前 喜欢(3) 浏览(2028) 评论(0)
Wiki
1.建议不要关闭,有数据安全风险 2.确实需要关闭请在对应控制器中加入以下代码 class BaseController extends Controller { //关闭 csrf 验证 public $enableCsrfValidation = false; }
11月前 喜欢(1) 浏览(1121) 评论(0)
Wiki
本教程基于主从服务器数据库同步完成之后,在 yii2 中配置如下,即可实现 Yii2.0 的数据库读写分离 1.打开我们的数据库配置文件common\config\main-local.php在db属性中做如下配置 'db' => [ 'class' => 'yii\db\Connection', // 配置主服务器 'dsn' => 'mysql:host=192.168.0.1;dbname=hyii2', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', // 配置从服务器 'slaveConfig' => [ 'username' => 'root', 'password' => 'root', 'attributes' => [ // use a smaller connection timeout PDO::ATTR_TIMEOUT => 10, ], 'charset' => 'utf8', ], // 配置从服务器组 'slaves' => [ ['dsn' => 'mysql:host=192.168.0.2;dbname=hyii2'], ], ], 如上配置就能实现yii2数据库读写分离的操作,很简单,只要一个配置就ok了,读写分离的功能由后台代码自动完成.调用者无须关心。 上面只是一个1主1从的配置,如果要一主多从,或者多主多从,参考此例以及官方文档即可完成。
1年前 喜欢(1) 浏览(2049) 评论(3)
Wiki
如下图所示,在 Yii2.0 的框架中如何实现顶部下拉导航呢? 实现过程中主要用到 NavBar 与 Nav 两个 Html 组件: 在 NavBar 组件 [[begin()]] 和 [[end()]] 调用之间包含的任何内容都被认为是 NavBar 的内容。可以使用诸如 [[NaV]] 或 [[\yii\widgets\Menu]] 这样的小部件来构建这样的内容。 举个例子: use yii\bootstrap\NavBar; use yii\bootstrap\Nav; NavBar::begin([ 'brandLabel' => 'Yii 中文网', 'brandUrl' => Yii::$app->homeUrl, 'options' => [ 'class' => 'navbar-top navbar-fixed-top', //对应的样式 ], ]); echo Nav::widget([ 'items' => [ ['label' => '社区', 'url' => ['/topic/index']], ['label' => '分类', 'options'=>['class'=>'ycn-banner'], 'items'=>[ ['label' => '<i class="fa fa-wikipedia-w top-tag"></i> Wiki', 'url' => ['topic/wiki'],'encode' => false], ['label' => '<i class="fa fa-question-circle top-tag"></i> 问答', 'url' => ['topic/question'],'encode' => false], ['label' => '<i class="fa fa-book top-tag"></i> 博客', 'url' => ['topic/blog'],'encode' => false], ] ], ], 'options' => ['class' => 'navbar-nav'], ]); NavBar::end(); Tip:想要 label 中的内容支持 Html(例如:图标) 就需要添加配置 encode=>false
1年前 喜欢(1) 浏览(1381) 评论(0)
Wiki
先贴一下 Gridview 列表尾部按钮的代码: [ 'header'=>'操作', 'headerOptions' => ['width' => '8%'], 'class' => 'yii\grid\ActionColumn', 'template' => '{update} {delete}', 'buttons'=>[ 'update' => function ($url, $model, $key){ return Html::a('编辑', '#', ['class' => 'j-edit', 'data-toggle' => 'modal', 'data-target' => '#page-modal']); }, 'delete'=> function ($url, $model, $key){ return Html::a('删除', ['delete', 'id'=>$model->id],[ 'data-method'=>'post', 'data-confirm' => '确定删除该项?', ] ) ; } ], ], 添加一个自定义的按钮 [ 'header'=>'操作', 'headerOptions' => ['width' => '8%'], 'class' => 'yii\grid\ActionColumn', 'template' => '{update} {delete} {test}', //此处添加一个 {test} 'buttons'=>[ 'update' => function ($url, $model, $key){ return Html::a('编辑', '#', ['class' => 'j-edit', 'data-toggle' => 'modal', 'data-target' => '#page-modal']); }, 'delete'=> function ($url, $model, $key){ return Html::a('删除', ['delete', 'id'=>$model->id],[ 'data-method'=>'post', 'data-confirm' => '确定删除该项?', ] ) ; } //这里对应添加一个test 'test'=> function ($url, $model, $key){ return Html::a('测试', ['delete', 'id'=>$model->id]) ; } ], ],
1年前 喜欢(1) 浏览(1401) 评论(0)
Wiki
在页面中添加 Modal 组件 <?php use yii\bootstrap\Modal; Modal::begin([ 'id' => 'page-modal', 'header' => '<h5>这里是标题</h5>', 'toggleButton' => ['label' => 'click me'], ]); echo '这里是模态内容...'; Modal::end(); ?> 添加出发按钮 <?= Html::a('点击按钮', '#', [ 'class' => 'btn btn-success', 'data-toggle' => 'modal', 'data-target' => '#page-modal' //此处对应Modal组件中设置的id ]) ?>
1年前 喜欢(1) 浏览(1636) 评论(3)
Wiki
一般数据表结构中经常会定义 created_at 和 updated_at 两个时间字段来记录表的创建及更新时间,那么 Yii2.0 如何通过模型来自动更新时间呢? 只需要在模型中添加以下方法即可: use yii\behaviors\TimestampBehavior; use yii\db\ActiveRecord; public function behaviors() { return [ [ 'class' => TimestampBehavior::className(), 'attributes' => [ # 创建时更新 ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'], # 修改时更新 ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'] ], #设置默认值 'value' => date("Y-m-d H:i:s") ] ]; }
1年前 喜欢(1) 浏览(1230) 评论(0)
社区公告
[公告] Yii中文网为优化用户体验进行大版本升级,老版网站会维持一段时间,可以点击顶部"旧版"链接访问旧版网站。
沟通交流

:492175201(技术1群)

:183620600(技术2群)

:291010569(技术3群)

订阅号 | 更多精彩内容推送
本周推荐