带条件的 Laravel/blade 组件

问题描述

有什么办法可以在组件上使用类似于 @can('update',$project) 的东西吗?

以下不起作用;

<x-input @cannot('update',$project) disabled="disabled" @endcannot />

而我做不到;

<x-input :disabled="@cannot('update',$project)" />

获取一个 true/false 值到组件中。

解决方法

我会将 disabled 添加到组件的 props 中

@props(['disabled' => false])

<input
@if($disabled) disabled @endif
{{ $attributes }}
/>

然后像这样使用

<x-input :disabled="Auth::user()->cannot('update',$project)" />

,

为什么不使用

@can('update',$project)
     <x-input />
@endcan