<?= $form->field($model, 'type_id')->checkboxList(ArrayHelper::map(MeType::find()->asArray()->all(),'id','name'))->label('经营类型');?>
Ref. yii\bootstrap\ActiveField::inline()
要是我就自己写css,bootstrap里的css不熟
good,就是这个效果
<?= $form->field($model, 'type_id')->checkboxList(ArrayHelper::map(MeType::find()->asArray()->all(),'id','name'))->label('经营类型');?>
Ref. yii\bootstrap\ActiveField::inline()
要是我就自己写css,bootstrap里的css不熟
good,就是这个效果
自己写了个布局文件mylayout.php,在视图里面定义$this->meun = 'xxx'
,
在mylayout.php中引用echo $this->menu
报错, 什么原因 ? 试过在控制器里面定义变量menu了!
在对应的action中
在对应的视图和布局中,都可以这样获得:
其实你写的没错,主要是view对象没有menu属性。。title和params属性倒是有,所以没必要那么麻烦,照你自己的写法写$this->params['menu'] = 'xxx'
;布局里边用就行了
當我 config 設定 language = ‘en’;
-views(Folder)
--index.php
---en(Folder)
-----index.php
---zh-CN(Folder)
-----index.php
---zh-TW(Folder)
-----index.php
Controller :
`$this->render('index');`
會自動分配相對應的語系 en/index.php
============================================================================
-views(Folder)
--index.php <=== 移除後
---en(Folder)
-----index.php
---zh-CN(Folder)
-----index.php
---zh-TW(Folder)
-----index.php
Controller :$this->render('index');
將不到 index.php
除非我下 render(Yii::$app->language.'/index');
以外
有甚麼辦法能
1.把 index.php 移除後
2.透過 $this->render('index');
3.render 到相對應的語系目錄下的 index.php
或者我的方法使用錯誤, 請給予指教!!
这个应该不用自己写这个判断吧,yii2会自己去匹配对应的语言包啊,直接放在message里,不就行了吗? 语言.php
index 自己作判断再转向相应的目录?
在控制器中 $this->render('left');
this表示控制器对象吧
在视图中 $this->render('left');
this表示视图对象
难道在controller类和view类中都定义了render函数吗?
如果在视图中 $this->render('left')
的话,为什么在控制器中不这样写呢$this->view->render('left')
为什么不能?;确实controller和view都有render方法,controller里的render方法是调的view里的
网站开发接近尾声,几乎所有的编码都是采用utf8编码,但是最后在采用gridview显示人名,并排序的时候出现问题了。不是按照拼音或者笔画啊,乱七八糟的排序。也百度了应当采用gbk的方式才可以正确排序,也知道怎么加这个转换gbk的语句,但是在gridview点击行首排序咋个处理呢?
先谢谢啦。
在 Search model 内配置 setSort()
内的 attributes
property 即可。下面的例子将 post.title
列设置为按拼音排序:
SELECT 字段名 FROM 表 ORDER BY CONVERT(字段名 USING gbk) ASC;
我想把如
www.example/index.php?r=site/index?id=49
的地址改写为
www.example/site/index/49.html
这样的,现在我成功去掉了index.php和r=字符,url变成了
www.example/site/index?id=49
就卡在urlManager的rules这里,请问我该怎么写rules?
另外,我要是想重写为www.example/site/49该怎么写rules呢,求大神给下指点。
另外,yii2的重写具体有哪些规则,语法是怎么样的,有资料的给我个地址也行。
如题;
我用yii2.0构建了一个service层,我调用service的时候对参数进行过签名,在yii2.0的service端获取参数的时候我想先进行相关处理。然后将处理后的参数还原成yii能接受的。具体如下:
yii标准请求地址:http://host/?r=site/get-userinfo&id=8
签名过的请求地址:http://host/?r=site/get-userinfo¶m=这里是包含了id等相关参数的密文
并且service用的yii内置的RESTful,控制器方法如下:
class SiteController extends \yii\rest\ActiveController{
public $modelClass = '';
public function actionGetUserinfo($id) {
# 相关操作
}
}
使用标准请求地址是能访问成功的,如何能让我签名过的地址能访问呢,也就是说如何能在调用actionGetUserinfo()
方法之前让我去改变$_GET['id']
这个值,有没有提供这样的过滤器或者方法。
yii小白一枚,望各位大神不吝赐教。先谢过了!
处理参数的核心逻辑在yii\base\Action::runWithParams里面,你可以选择重写这部分,但是这会影响整个框架的所有代码。
建议是重写控制器的runAction逻辑,实现一个YourActiveController
然后,相关的逻辑继承这个控制器
两种方法
1.写一个behaviour。
2.重写beforeAction方法,在当前类,或者写个父类继承。
请问大神,我一张表里的3个字段,都要关联到城市表里面去,这种情况应该怎么写关联模型?
下面是关联模型
public function getProvin()
{
return $this->hasOne(City::className(), ['id' => 'provin']);
}
public function getCity()
{
return $this->hasOne(City::className(), ['id' => 'citys']);
}
public function getArea()
{
return $this->hasOne(City::className(), ['id' => 'area']);
}
下面是GridView代码
$query->joinWith(['city']);
$query->joinWith(['area']);
$query->joinWith(['provin']);
这种写法直接报错,,,请问应该怎么写?
首先,$query是已经查询出来的ar吗?
如果是的话 $query->city,$query->area,$query->provin就可以直接取了。
如果不是,那$query->with([‘city’,’area’,’provin’])->all(),查询出来,和上面一样取值就好了。
gii根据数据库表生成的model是扩展自\yii\db\ActiveRecord。
一个简单的功能:上传产品信息至数据库表中,同时上传产品图片至目录下。
用gii生成了CRUD,然后结合手册中上传文件的示例代码,在create view里添加一个file input ,为了能验证上传是jpg或是png,于是在model里添加了rule,然后添加自定义字段,数据库内容是进去了,图片没上传。
gii根据数据库表生成的model是扩展自\yii\db\ActiveRecord。而文件上传示例代码中用的自定义表单扩展自yii\base\Model;是不是这里的问题?
这么个简单的功能,这么难找到示例代码…
namespace backend\models;
use Yii;
use yii\web\UploadedFile;
class JiaoyanAward extends \yii\db\ActiveRecord
{
public $imageFile;//上传的图片
/**
* @inheritdoc
*/
public static function tableName()
{
return 'jiaoyan_award';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
// [['term', 'poster', 'class', 'award', 'organization', 'photo', 'self_value', 'check_value', 'check_time', 'status', 'remark'], 'required'],
[['term'], 'integer'],
[['self_value', 'check_value'], 'number'],
[['discount'], 'boolean'],
[['post_time', 'check_time'], 'safe'],
[['poster', 'class', 'organization'], 'string', 'max' => 50],
[['award', 'photo', 'remark'], 'string', 'max' => 100],
[['status'], 'string', 'max' => 10],
[['imageFile'], 'file', 'extensions' => 'png, jpg'],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'term' => 'Term',
'poster' => 'Poster',
'class' => 'Class',
'award' => 'Award',
'organization' => 'Organization',
'photo' => 'Photo',
'self_value' => 'Self Value',
'discount' => 'Discount',
'check_value' => 'Check Value',
'post_time' => 'Post Time',
'check_time' => 'Check Time',
'status' => 'Status',
'remark' => 'Remark',
];
}
public function upload()
{
if ($this->validate()) {
$this->imageFile->saveAs('uploads/' . 'abc'. '.' . $this->imageFile->extension);
return true;
} else {
return false;
}
}
}
最好不要改源文件 写个类来继承 修改子类