我正在使用 PHP(laravel)。我想为我添加的每个用户添加角色。
我怎样才能实现它?
$postData->__set('roles',$postData->dataType('relation',array('Role','_user')));
我使用过这样的东西,但这不合适。
我能够在解析时将用户保存到用户表,但我在角色表中有两个角色, admin和用户(普通用户)。我需要在其中添加一个用户。 '关系'是parse.com中的一种数据类型,使用它可以实现它。
答案 0 :(得分:0)
只需使用CodeCloud并使用Parse.com PHP库调用Cloud Function。
JavaScript中的这个函数将一个User的ObjectId数组添加到一个名为
的角色中// Add array of user ids to role with defined name
Parse.Cloud.define('addUsersToRole', function(request, response) {
// Params
var userIds = request.params.users;
var roleName = request.params.role;
// Underscore
var _ = require('underscore');
// Master Key
// skip ACL check
Parse.Cloud.useMasterKey();
// new role query
var query = new Parse.Query(Parse.Role);
// get the role with given name
query.equalTo('name', roleName);
// get the first result using promises
query.first().then(function(role){
if(role) {
var userRelation = role.relation('users');
_.each(userIds, function(userId) {
// create a new user object
var user = new Parse.User();
// assign the id
user.id = userId;
// add it to the role user relation
userRelation.add(user);
// a simple user counter
role.increment('userCount');
});
// save the role
role.save().then(function(){
response.success();
});
} else {
response.error('No Role found with Name ' + roleName);
}
});
});
然后使用PHP Parse Library调用函数
<?php
// https://github.com/apotropaic/parse.com-php-library/blob/master/parseCloud.php
// Adding the possibility to run parse cloud code functions
$cloud = new parseCloud("addUsersToRole");
// Setting the params
$cloud->__set('users',array('oviajjs3', 'CskkO33d', 'Casi33Jn'));
$cloud->__set('role','admin');
// Running the cloud function
$result = $cloud->run();
?>