简体   繁体   中英

laravel 8 x-components in blades

I can't figure out the way x-blades are working in laravel.

Example

I've created custom textarea component but I can't get values of rows and cols from blade.

Logic

If blade provides rows & cols use that if not use static ones.

Code

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" />

Testing results

cols="{{ $cols }}" returning static value 50 from component

rows="{{ $rows ? $slot : $rows }}" returning rows=""

any idea?

Solved

Here is how I did it:

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>

Now if I remove <x-slot name="cols"> and <x-slot name="rows"> it uses static values from component, if not it uses my blades values.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM