Получить данные из родительского компонента - laravel7 - PullRequest
0 голосов
/ 11 марта 2020

Я борюсь с проблемой.

Я хочу создать конструктор форм с новым синтаксисом x-компонента laravel, но мне не удалось получить данные из родительского компонента

blade-файл:

<x-input name="email">
    <x-email>{{ __('E-mail Address') }}</x-email>
</x-input>

компоненты / форма / входы / master.blade. php:


<div class="form-group">
    {{ $slot }}
</div>

компоненты / форма / входы / email.blade. php:

<input type="email" class="form-control" placeholder="{{ $placeholder ?? $slot }}" name="{{ $name }}">

выбрасывает: \ViewException Undefined variable: name

Я могу получить атрибут name в электронной почте, например: <x-email name="email"/>, но я не хочу этого делать. Поскольку у меня может быть как минимум 20+ видов ввода, таких как пароль, текст, выберите et c.

Я планирую использовать <x-input/> для общих целей, таких как сообщения проверки, метки и т. Д. c. и каждый x- * содержит определенные c атрибуты, такие как: опции для x-select,: проверено для флажка или радио ...

Components \ Input. php:

<?php

namespace App\View\Components\Form;

use Illuminate\View\Component;

class Input extends Component
{
    public $name;
    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct($name)
    {
        $this->name = $name;
    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\View\View|string
     */
    public function render()
    {
        return view('components.form.inputs.master');
    }
}

Components \ Email. php:

<?php

namespace App\View\Components\Input;

use Illuminate\View\Component;

class Email extends Component
{

    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct()
    {

    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\View\View|string
     */
    public function render()
    {
        return view('components.form.inputs.email');
    }
}

Если я вставлю $ name в Email. php в конструкторе, это говорит о неразрешенной зависимости $ name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...