如何在其他视图 blade 上列出 Jetstream 角色
How to list Jetstream Roles on other view blade
我一直在整个文档和 Internet 上搜索以查找如何执行此操作。
我看到 Jetstream 有 team-member-manager.php,您可以在其中设置新成员并为他们分配角色。他们可以通过这个列出这个
<!-- Role -->
@if (count($this->roles) > 0)
<div class="col-span-6 lg:col-span-4">
<x-jet-label for="role" value="{{ __('Role') }}" />
<x-jet-input-error for="role" class="mt-2" />
<div class="mt-1 border border-gray-200 rounded-lg cursor-pointer">
@foreach ($this->roles as $index => $role)
<div class="px-4 py-3 {{ $index > 0 ? 'border-t border-gray-200' : '' }}"
wire:click="$set('addTeamMemberForm.role', '{{ $role->key }}')">
<div class="{{ isset($addTeamMemberForm['role']) && $addTeamMemberForm['role'] !== $role->key ? 'opacity-50' : '' }}">
<!-- Role Name -->
<div class="flex items-center">
<div class="text-sm text-gray-600 {{ $addTeamMemberForm['role'] == $role->key ? 'font-semibold' : '' }}">
{{ $role->name }}
</div>
@if ($addTeamMemberForm['role'] == $role->key)
<svg class="ml-2 h-5 w-5 text-green-400" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
@endif
</div>
<!-- Role Description -->
<div class="mt-2 text-xs text-gray-600">
{{ $role->description }}
</div>
</div>
</div>
@endforeach
</div>
</div>
@endif
现在我想把这种事情用在其他blade上,但我似乎不知道$this->roles
是怎么来的。
谢谢
This 是您想要的 blade 的代码。
正如您所看到的,代码是魔法发生的地方,我认为它被称为动态 属性。这意味着当你有这样的方法时 getRolesProperty()
你可以在前端像这样访问它 $this->roles
;
/**
* Get the available team member roles.
*
* @return array
*/
public function getRolesProperty()
{
return array_values(Jetstream::$roles);
}
您可以只复制组件并根据需要修改它,然后return您自己的视图。
我一直在整个文档和 Internet 上搜索以查找如何执行此操作。
我看到 Jetstream 有 team-member-manager.php,您可以在其中设置新成员并为他们分配角色。他们可以通过这个列出这个
<!-- Role -->
@if (count($this->roles) > 0)
<div class="col-span-6 lg:col-span-4">
<x-jet-label for="role" value="{{ __('Role') }}" />
<x-jet-input-error for="role" class="mt-2" />
<div class="mt-1 border border-gray-200 rounded-lg cursor-pointer">
@foreach ($this->roles as $index => $role)
<div class="px-4 py-3 {{ $index > 0 ? 'border-t border-gray-200' : '' }}"
wire:click="$set('addTeamMemberForm.role', '{{ $role->key }}')">
<div class="{{ isset($addTeamMemberForm['role']) && $addTeamMemberForm['role'] !== $role->key ? 'opacity-50' : '' }}">
<!-- Role Name -->
<div class="flex items-center">
<div class="text-sm text-gray-600 {{ $addTeamMemberForm['role'] == $role->key ? 'font-semibold' : '' }}">
{{ $role->name }}
</div>
@if ($addTeamMemberForm['role'] == $role->key)
<svg class="ml-2 h-5 w-5 text-green-400" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewBox="0 0 24 24"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
@endif
</div>
<!-- Role Description -->
<div class="mt-2 text-xs text-gray-600">
{{ $role->description }}
</div>
</div>
</div>
@endforeach
</div>
</div>
@endif
现在我想把这种事情用在其他blade上,但我似乎不知道$this->roles
是怎么来的。
谢谢
This 是您想要的 blade 的代码。
正如您所看到的,代码是魔法发生的地方,我认为它被称为动态 属性。这意味着当你有这样的方法时 getRolesProperty()
你可以在前端像这样访问它 $this->roles
;
/**
* Get the available team member roles.
*
* @return array
*/
public function getRolesProperty()
{
return array_values(Jetstream::$roles);
}
您可以只复制组件并根据需要修改它,然后return您自己的视图。