首页 > 解决方案 > laravel 8 x 刀片中的组件

问题描述

我无法弄清楚 x-blades 在 laravel 中的工作方式。

例子

我已经创建了自定义textarea组件,但我无法从刀片中rows获取值。cols

逻辑

如果刀片提供rowscols使用它,如果不使用静态刀片。

代码

textarea.blade.php

@props(['disabled' => false, 'rows' => '4', 'cols' => '50'])

<textarea {{ $disabled ? 'disabled' : '' }} rows="{{ $rows ? $slot : $rows }}" cols="{{ $cols }}" {!! $attributes->merge(['class' => 'form-input rounded-md shadow-sm']) !!}></textarea>

myform.blade.php

<x-textarea class="block mt-1 w-full" name="address" rows="10" cols="3" />

测试结果

cols="{{ $cols }}"50从组件返回静态值

rows="{{ $rows ? $slot : $rows }}"返回rows=""

任何想法?

标签: phplaravellaravel-blade

解决方案


解决了

这是我的做法:

component

@props(['disabled' => false, 'rows'=>'4', 'cols'=>'50'])

<textarea {{ $disabled ? 'disabled' : '' }} rows="{{ $rows }}" cols="{{ $cols }}" {!! $attributes->merge(['class' => 'form-input rounded-md shadow-sm']) !!}></textarea>

blade

<x-textarea class="block mt-1 w-full" name="address" required :value="old('address')" >
  <x-slot name="cols">3</x-slot>
  <x-slot name="rows">10</x-slot>
</x-textarea>

现在,如果我删除它<x-slot name="cols"><x-slot name="rows">使用组件中的静态值,否则它使用我的刀片值。


推荐阅读