<?= Html::button('添加试题', ['class' => 'btn btn-primary','data-toggle'=>'modal','onclick' => 'openAddModel(1,2)']) ?>
openAddModel
里面要传两个php变量 如何实现多谢指教
<?= Html::button('添加试题', ['class' => 'btn btn-primary','data-toggle'=>'modal','onclick' => 'openAddModel(1,2)']) ?>
openAddModel
里面要传两个php变量 如何实现多谢指教
想部署到服务器。默认跳转到前台./frontend/web文件夹
一种方法是开启PHP的rewrite功能,然后在根目录底下放.htaccess文件,写配置规则
另外一种方法是配置apache里的VirtualHost,这个楼上已经给出了答案。
第二种方法更好,直接在服务器层面解决
是配置虚拟主机么?
是要做前后端分离吗?直接通过服务器配置不就可以跳到前台了吗
那就配呗。在httpd.conf
里添加一组VirtualHost
,
虽然我这个是window下的,但我觉得应该大同小异。
建议直接去搜索linux下Apache开启url重写。。。详细教程有很多
‘enablePrettyUrl’ => true,
我有个网站,想整合进yii2.0。以前写的一堆js和css,就放在web文件夹里。想做成资源包怎么做。
然后怎么使用。 看晕了。
别着急,花点时间,静下心来,慢慢看。
一边看,一边练习。
文档里的描述很精炼,需要点时间消化。
主要是引入css,js
在使用yii2-start-kit,修改个人信息相关程序。
public function actionProfile()
{
// $model = new UserProfile;//使用这个也不对
$model = Yii::$app->user->identity->userProfile;//这里
if ($model->load($_POST) && $model->save()) {
Yii::$app->session->setFlash('alert', [
'options'=>['class'=>'alert-success'],
'body'=>'修复的信息已经保存!'
]);
return $this->refresh();
}
return $this->render('profile', ['model'=>$model]);
}
就是这句 $model = Yii::$app->user->identity->userProfile;
它什么时候塞进去,就是找不到。按说应该是登录后塞进去的,相关登录代码,afterlogin啊都找不到。
有熟悉的yii2-start-kit的兄弟帮忙看下
yii2-starter-kit/common/models/User.php
文件有个 getUserProfile
方法
看看user对应model的userProfile
属性$model = UserProfile::find()->where('id='.Yii::$app->user->identity->id)->one();
视图中的代码如下:
浏览器显示此视图的效果:
firebug下此视图的html代码:
而我想要得到的是如下效果:
要得到的伪代码如下:
也就是如何判断表单验证时有没有使得message产生,如果判断有message则单纯只得到model表单验证里的message,不加任何样式:
public function rules()
{
return [
['email','required','message'=>'不能为空'],
];
}
在你的表单以model验证之后。若有错误信息,则会向errors属性中填充错误信息。
并且你需要把这个带着错误信息的model返给视图。
然后视图中可能有如下判断。
自定义显示?完全可以用自带的提示功能实现你的需求。
显示效果你可以自定义的。
建议使用ActiveForm生成表单,通过CSS实现你想要的显示效果。
感觉先用 ActiveForm
生成表单,然后提交表单的时候,表单内容不符合的话,可以直接用 $model->getErrors()
来获取错误内容.
一个后台的管理系统,不同管理员对菜单的权限也不同。有的可以修改删除,有的只能浏览,还有的不能看到。有个大神指导我全放在一个资源表里,具体思路怎么做?
好像yii2-admin直接有这功能,但我没用过它,没详细介绍。
还有种办法就是在输出菜单前判断当前用户是否有相应的权限。
这个可以做啊,前段时间还在网上看到别人做呢
哪位大神知道怎么隐藏该插件的上传按钮
般情况下,我们可以定义一个JS的通用函数,用来初始化这个插件控件的,如下JS的函数代码所示。
那个 showUpload:的false 或者 true 就可以控制
这几天一直未能 安装成功 MongoDB 扩展
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- yiisoft/yii2-mongodb 2.1.1 requires ext-mongodb >=1.0.0 -> the requested P
HP extension mongodb is missing from your system.
- yiisoft/yii2-mongodb 2.1.0 requires ext-mongodb >=1.0.0 -> the requested P
HP extension mongodb is missing from your system.
- Installation request for yiisoft/yii2-mongodb ~2.1.0 -> satisfiable by yii
soft/yii2-mongodb[2.1.0, 2.1.1].
To enable extensions, verify that they are enabled in those .ini files:
- D:\wamp64\bin\php\php5.6.25\php.ini
You can also run `php --ini` inside terminal to see which files are used by PH
P in CLI mode.
`
Compiler MSVC11 (Visual C++ 2012)
mongo
MongoDB Support enabled
Version 1.6.8
Streams Support enabled
Supported Authentication Mechanisms
MONGODB-CR enabled
SCRAM-SHA-1 enabled
MONGODB-X509 disabled
GSSAPI (Kerberos) enabled
PLAIN enabled
Directive Local Value Master Value
mongo.allow_empty_keys 0 0
mongo.chunk_size 261120 261120
mongo.cmd $ $
mongo.default_host localhost localhost
mongo.default_port 27017 27017
mongo.is_master_interval 15 15
mongo.long_as_object 0 0
mongo.native_long 0 0
mongo.ping_interval 5 5
骚年,mongo扩展最新版本是2.1,是需要php7支持的,如果你php版本低于7.0,就在composer.json加个`
然后php composer update下。用2.0版本的。
[备注] 我这个问题回答不清晰,我自己基于当时使用的是php7版本,php-mongo扩展已经不支持,所以我换成了php-mongodb扩展,但是我没有回退,所以不清楚php-mongodb是否支持低版本。这个问题回答错误,如果给大家造成不便的话非常抱歉。多谢勇哥@xiaoshenzhen指出我的错误。
引用勇哥的注解:
mongo的扩展(胖子这里说的是Yii2 mongodb扩展,不是php的mongodb扩展)最新版本是2.1, 这个扩展需要php-mongodb扩展支持 php-mongodb在php5和php7下面都是可以运行的,我测试过,一点问题也没有。
yii2-mongodb 有一个1版本,这个1版本对应的是php-mongo扩展,因此只能在php5下面跑,不支持php7
yii2-mongodb 有一个2版本,这个2版本对应的是php-mongodb扩展,因此支持php5和php7
控制器和视图的源码在下面,模型源码是GII生成的;
$searchModel = new BodySearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\CheckboxColumn'],
['class' => 'yii\grid\SerialColumn'],
'created_at',
'col_a',
'col_b',
'col_c',......
'updated_at',
['class' => 'yii\grid\ActionColumn'],
],
]);
按照这样写的方法,gridview会生成一个表格,表格会显示Body里面的所有数据。
而我想要的结果是,只显示Body里面col_d为某个值的所有数据。请问怎么修改
那就修改dataProvider数据,而dataProvider应该是通过searchModel生成的,那么去修改searchModel中的过滤条件
如果不想更改dataProvider里边的查询条件,也可以使用匿名函数实现.
@raijin
我的searchmodel里的数据集分成三类数据,不同的情况下想得到不同类型的数据,但又想服用search方法,所以就改写了search方法
`
public function search($params, $id=’%’)
{
`
增加了一个分类的参数进行对结果的过滤
两个模型是一对一关系,一个模型保存时再行为中自动更新另外一个模型。这个过程中会自动开启事务吗?
默认不会,除非你重写了 ActiveRecord::transactions方法,比如:
不会,但你要是人为的干扰就会了