将 Php 变量传递给 Laravel Blade 组件

Ham*_*utt 4 php laravel laravel-blade laravel-components

我制作了一个 Laravel 组件,使用php artisan make:component testcomponent它创建了两个文件;第一个是blade,第二个是php 类文件。这是刀片文件:

<div>
    {{ $data }}
</div>
Run Code Online (Sandbox Code Playgroud)

这是 php 文件

<?php

namespace App\View\Components;

use Illuminate\View\Component;

class testcomponent extends Component
{
    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\Contracts\View\View|\Closure|string
     */
    public function render()
    {
        return view('components.testcomponent');
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用这种方式在刀片文件中调用这个组件<x-testcomponent/>

但是现在,我如何将来自控制器的变量传递给该组件?

Khi*_*hid 7

首先转到 php 组件文件并执行此操作。(声明一个变量并为来自构造函数的变量分配一个值)

<?php

namespace App\View\Components;

use Illuminate\View\Component;

class testcomponent extends Component
{
    public $data;
    public function __construct($data)
    {
        //
        $this->data=$data;
    }

  
    public function render()
    {
        return view('components.testcomponent');
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在视图文件中调用blade组件;你可以这样打电话

<x-testcomponent :data=$data/>
Run Code Online (Sandbox Code Playgroud)

其中 $data 是来自控制器的变量

就这样解决了!!