如何使用刀片将路线添加到组件的参数中

时间:2019-08-16 13:11:09

标签: php laravel laravel-blade

我想这很简单,但是我花了30分钟试图弄清楚如何正确编写:

@component('components.button', [
    'color' => 'danger',
    'formaction' => 'formaction="'{{ route('profiles.destroy', $user->id) }}'"'
    ])
@lang('Supprimer')

我的按钮组件:

<button type="submit" class="btn @isset($color){{ ' btn-' . $color }}@else btn-primary @endisset
float-right " @isset($formaction){{ $formaction }}>
{{ $slot }}

2 个答案:

答案 0 :(得分:0)

@开头的刀片指令包含PHP代码,这意味着您的字符串连接和刀片变量替换无效。其实更简单:

@component('components.button', [
    'color' => 'danger',
    'formaction' => route('profiles.update', $user->id)
])
@endcomponent
@lang('Supprimer')
<button type="submit" 
        class="btn @isset($color){{ ' btn-' . $color }}@else btn-primary @endisset
float-right " 
        @isset($formaction)formaction="{{ $formaction }}"@endisset>
   {{ $slot }}
</button>

在执行以下计算时,可以使组件代码更好一些:

@php($btnColorClass = isset($color) ? 'btn-'.$color : 'btn-primary')
<button type="submit" 
        class="btn {{ $btnColorClass }} float-right"
        @isset($formaction)formaction="{{ $formaction }}"@endisset>
   {{ $slot }}
</button>

答案 1 :(得分:0)

尝试按钮。

<button type="submit" class="btn @if(isset($color)) {{ ' btn-'.$color }} @else {{ 'btn-primary' }} @endif float-right "
@if(isset($formaction)) action="{{ $formaction }}" @endif>
            {{ $slot }}
    </button>