如何在Laravel中使用组件
#php #laravel #cleancode #dry

为什么要使用组件?
回答:使用有助于使用干净代码的组件,我们可以在您的组件中分离可重复使用的组件,并在刀片文件中使用任何地方。

Laravel头等基础组件中有两种类型的组件可以从刀片文件传递数据,而另一个也称为匿名组件,这些数据不需要直接使用刀片文件中的数据传递数据。不用担心,我会逐步解释你。

步骤1

您需要使用工匠命令行生成组件

php artisan make:component Forms/InputText

然后您将获得两个文件,一个在内部
app\View\Components\Forms\InputText.php和其他resources\views\components\forms\input-text.blade.php

第2步

转到inputtext.php文件夹


<?php

namespace App\View\Components\Forms;

use Closure;
use Illuminate\Contracts\View\View;
use Illuminate\View\Component;

class InputText extends Component
{

    public string $type;
    public string $label;
    public string $name;
    public string $placeholder;

    /**
     * Create a new component instance.
     */
    public function __construct(
        $type,
        $label,
        $name,
        $placeholder
    ) {

        $thsis->type = $type;
        $this->label = $label;
        $this->name = $name;
        $this->placeholder = $placeholder;
    }

    /**
     * Get the view / contents that represent the component.
     */
    public function render(): View|Closure|string
    {
        return view('components.forms.input-text');
    }
}

以上代码是为了声明一些我们将从刀片组件传递的变量

步骤3

转到forms \ input-text.blade.php并使用了您在输入文本类中使用的变量。

<div>
    <label for="{{ $name }}">{{$label}}</label>
    <input type="{{ $type }}" 
           class="form-control @error('email') is-invalid @enderror" 
           id="{{ $name }}" name="{{ $name }}"
          placeholder="{{ $placeholder }}">

         @error($name)
          <div class="invalid-feedback">
            {{ $message->first() }}
          </div>
      @enderror
</div>


步骤4

在您的罐中使用任何刀片文件,例如以下

  <x-forms.input-text type="text"
                      label="Name"
                      name="name"
                      placeholder="Please Enter your name"
  />

InputText组件允许您创建输入文本字段。使用此组件时,您可以通过使用:name="$name"中的name属性传递变量。

感谢您阅读此文章,如果您有任何疑问或任何建议免费对评论 @Harom284