Laravel Jetstream 比较两个表格以更改表格的背景
Posted
技术标签:
【中文标题】Laravel Jetstream 比较两个表格以更改表格的背景【英文标题】:Laravel Jetstream Comparing Two Tables to change the background of the table 【发布时间】:2021-11-23 02:27:17 【问题描述】:我正在尝试制作一个用户有组织的表格,如果用户没有组织但该单元格的背景将会改变。我将数据存储在数据透视表中。我尝试将数据透视表的 user_id 放入一个数组并在刀片中进行比较,但它不起作用,如果我尝试将它放入 int 变量,我只会得到最后一个值。唯一改变的背景是数组的最后一个值,而不是其余的。
这是刀片文件
@if($displayData->count())
@foreach($displayData as $item)
<tr>
<td class="px-6 py-4 text-sm whitespace-no-wrap">
$item->id
</td>
<td class="px-6 py-4 text-sm whitespace-no-wrap">
$item->name
</td>
<td class="px-6 py-4 text-sm whitespace-no-wrap">
$item->email
</td>
<td class="px-6 py-4 text-sm whitespace-no-wrap">
$item->created_at
</td>
<td class="px-6 py-4 text-sm whitespace-no-wrap">
$item->updated_at
</td>
<td class="px-6 py-4 text-sm whitespace-no-wrap">
<x-jet-button wire:click="updateUserModel( $item->id )">
__('Update User')
</x-jet-button>
<x-jet-button wire:click="updateUserPasswordModel( $item->id )">
__('Update Password User')
</x-jet-button>
<x-jet-danger-button wire:click="deleteShowUserModal( $item->id )">
__('Delete')
</x-jet-danger-button>
</td>
<td class="px-6 py-4 text-sm whitespace-no-wrap">
<x-jet-button wire:click="addShowRoleModel( $item->id )">
__('Add Role')
</x-jet-button>
<x-jet-button wire:click="addShowTeamsModel( $item->id )">
__('Create Team')
</x-jet-button>
</td>
<td class="px-6 py-4 text-sm whitespace-no-wrap"
style="
@foreach($isUsersHaveAffliatedOrganization as $orgs)
@if($item->id == $orgs )
background: blue;
@else
background: red;
@endif
@endforeach
">
<x-jet-button wire:click="addShowOrganizationModel( $item->id )">
__('Add Organization')
</x-jet-button>
</td>
</tr>
@endforeach
@else
<tr>
<td class="px-6 py-4 text-sm whitespace-no-wrap" colspan="4">
No Results Found
</td>
</tr>
@endif
这是我的控制器 isUserHaveOrganization()
public function isUserHaveOganization()
$this->isUserOrgAuthId = DB::table('organization_user')->orderBy('id','asc')->get()->pluck('user_id');
return $this->isUserOrgAuthId;
读取()
public function read()
return DB::table('users')->orderBy('id','asc')->paginate(10);
和渲染函数
public function render()
return view('livewire.users',[
'displayData' => $this->read(),
'isUsersHaveAffliatedOrganization' => $this->isUserHaveOganization(),
]);
我不知道该怎么办。谢谢
【问题讨论】:
【参考方案1】:那里不需要foreach
。您可以通过contains
检查该 id 是否在集合中,如下所示:
style="
@if($isUsersHaveAffliatedOrganization->contains($item->id))
background: blue;
@else
background: red;
@endif
">
【讨论】:
感谢您的回答,但结果是一样的,因为它计算了数据透视表中 user_id 的数量并更改了具有相同 id 的用户的背景,我正在尝试比较数据透视表和用户表,所以如果用户的 id 在数据透视表中,它会检测到它并更改背景,谢谢您的回答 现在我明白你的问题了。我更新了答案,看看吧。以上是关于Laravel Jetstream 比较两个表格以更改表格的背景的主要内容,如果未能解决你的问题,请参考以下文章
对惯性响应和 json 响应使用相同的方法 Laravel Jetstream
Laravel 与 JetStream 和 LiveWire 不渲染(尾风)
Laravel 8 Jetstream:无法使用使用工厂和播种机播种的帐户登录