如何将口才数据传递到刀片组件?

时间:2020-03-12 20:48:37

标签: laravel eloquent components laravel-blade

你好

我有一个名为的刀片布局: profile.blade.php //组件

我有一个刀片文件信息,它来自profile.blade.php组件。 在我的控制器上,我有一个配置文件方法:

public method profile(User $user) {
   return view('infos.blade.php', compact('user'));
}

当我尝试在 profile.blade.php组件中使用变量 user 时,出现错误消息“ 未定义的用户变量

我的问题是如何从控制器接收到的数据到刀片组件配置文件? 因为该组件的这一部分将被多次使用。

谢谢。

2 个答案:

答案 0 :(得分:1)

在您的应用程序/视图/组件/配置文件中-

  <?php

namespace App\View\Components;

use Illuminate\View\Component;

class profile extends Component
{

   public $user; //for consistency

   public function __construct($user)
   {
       $this->user = $user;
   }


   public function render()
   {
       return view('components.profile');
   }
 }

现在组件可以渲染一个变量($user), 在您的信息的blade/infos.blade.php 中,您可以提供 组件的变量,如 --

<x-profile :user='$user' ></x-profile>

我知道这个问题是很久以前发布的 但我有同样的问题,答案张贴在这里 对我不起作用,但这种方法确实有效......它可能对某人有所帮助。

答案 1 :(得分:0)

由于它是组件,因此每次调用时都必须传递用户参数

@component('profile', ['user' => $user]) @endcomponent // here $user comes from controller