rbac修改auth_assignment表的user_id指定成admin表的admin_id,请教该如何做呢?
如果 admin_id
是 admin
表的主键,我想只要配置好 user
component 应该就行了吧?我没有验证,你试试看。
rbac修改auth_assignment表的user_id指定成admin表的admin_id,请教该如何做呢?
如果 admin_id
是 admin
表的主键,我想只要配置好 user
component 应该就行了吧?我没有验证,你试试看。
我希望的查询结果应该是这样的:
请教各位有什么好的思路或方法嘛?
补充一下:
我暂时是这样做的:
$query = $model::find();
$data = $query->where(['menu_parent'=>0])->orderBy('menu_position asc')->asArray()->all();
$i = 0;
foreach($data as $k=>$v){
if($v['menu_parent']!=0){
continue;
}
$level = $query->where(['menu_parent'=>$v['menu_position']])->asArray()->all();
array_splice($data,$k+1+$i,0,$level);
$i=count($level);
}
foreach($data as $k=>$v){
echo $k.'的值:'.$v['menu_name']."<br>";
}
有没有什么更好的方法?
你把menu_value定义为varchar,然后order by menu_value 就是按照你这个方式来排序了,1在2前面,所以,1-1 的记录也会在2前面
做菜单、或者分类树,可以用递归,给个父级ID做标识。
循环查询子级
都知道web文件夹下有个assets文件夹,每次打开网页的时候,assets文件夹下都产生很多文件。现在想把他部署到新浪云空间,做一个玩玩的网站。可是,新浪云空间不让写,写文件只可以在SAE_TMP_PATH目录下写。现在直观的想法有两个
或者还有第三种做法,就不部署在新浪云,咋滴,当然还不能这么任性。各位可有好的建议,谢谢啦。
这是我的做法记录。http://my.oschina.net/bubifengyun/blog/614555
Yii里的那些配置都是可以自定义目录的,文档里都有写
可以随便指定位置和名字
如:
我想把如
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;
}
}
}
最好不要改源文件 写个类来继承 修改子类
我现在是用户表和中间表进行关联,但是这样求取不到角色表里面的数据了,求解….
$query = UcUser::find();
$query->joinWith(['authGroupAccess']);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
你可以参考 Relations via a Junction Table 章节内容。
在控制器中 $this->render('left');
this表示控制器对象吧
在视图中 $this->render('left');
this表示视图对象
难道在controller类和view类中都定义了render函数吗?
如果在视图中 $this->render('left')
的话,为什么在控制器中不这样写呢$this->view->render('left')
为什么不能?;确实controller和view都有render方法,controller里的render方法是调的view里的