我原來的代碼如下返回結果後5.2
/*
Create the Role
*/
$result = (new RoleDb())->Create($obj);
if($result["Success"]) {
/*
| Get all Modules
*/
$Permissions = $this->Module->All($obj->RoleID);
$list = [];
/*
| Prepare the list that will be assigned to Newly created role.
*/
foreach($Permissions["Data"] as $Permission) {
$RolePermissionOM = new RolePermissionOM();
$RolePermissionOM->PermissionID = $Permission->PermissionID;
$RolePermissionOM->IsActive = $Permission->DefaultPermission;
$RolePermissionOM->RoleID = $result["Data"];
array_push($list, $RolePermissionOM);
}
/*
| Create default permissions for above created role.
*/
return $this->RolePermission->CreateDefaultPermissions($list, $result["Data"]);
}
現在,在我的應用程序,有些情況下被創建,並代替代碼重複角色3個點,我儘管將此代碼轉換爲事件。因此,無論何時創建角色,都會觸發一個事件來爲該角色創建權限記錄。我編寫了下面的代碼。
Event::fire(new RoleCreationEvent($result));
// `$result` contains the newly created RoleID.
問題:在我的原代碼,我能得到的結果來檢查權限設置是否正確或不保存。如何解僱事件?
事件代碼
class RolePermissionEvent extends Event
{
use SerializesModels;
public function __construct($RoleID, $Module, $RolePermission)
{
$Permissions = $Module->All($RoleID);
$list = [];
foreach($Permissions["Data"] as $Permission) {
$RolePermissionOM = new RolePermissionOM();
$RolePermissionOM->PermissionID = $Permission->PermissionID;
$RolePermissionOM->RoleID = $RoleID;
array_push($list, $RolePermissionOM);
}
return $RolePermission->CreateDefaultPermissions($list, $RoleID);
}
}
另外:我在我的生活中看過很多代碼註釋,但作爲延續角色的管道是我的第一個。我喜歡! – bishop
返回聽衆的結果。 Event :: fire(new RoleCreationEvent($ result));將返回數組中的所有這些結果。 –
@AndrejLudinovskov:我剛剛添加的事件代碼裏面,返回值,如果我檢查事件,我可以看到返回的數據,但是當我嘗試這個......'$ result = \ Event :: fire(new RolePermissionEvent $ result [「Data」],$ this-> Module,$ this-> RolePermission)); dd($ result);'它返回空數組。 – Pankaj