Creé un componente de laravel usando php artisan make:component testcomponent para el cual se crean dos archivos; uno es blade y el segundo es un archivo de clase php. aquí está el archivo de hoja:
<div> {{ $data }} </div>y aquí está el archivo 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'); } } Y llamé a este componente en un archivo blade de esta manera <x-testcomponent/>
Pero ahora, ¿cómo puedo pasar un controlador de forma variable a este componente?
En primer lugar, vaya al archivo del componente php y haga esto. (Declare una variable y asigne un valor de la variable que proviene del constructor)
<?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'); } }y luego en el archivo de vista donde llama al componente blade; puedes llamar así
<x-testcomponent :data=$data/>donde $datos es la variable que proviene del controlador
¡¡Eso está resuelto!!