【问题标题】:How to pass Eloquent Data to blade component?如何将 Eloquent Data 传递给刀片组件?
【发布时间】:2020-06-24 22:48:35
【问题描述】:

你好

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

我有一个刀片文件 infos,它从 profile.blade.php 组件扩展而来。 在我的控制器上,我有一个配置文件方法:

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

当我尝试将变量 user 用于 profile.blade.php 组件t 时,出现错误提示“未定义的用户变量强>”

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

谢谢。

【问题讨论】:

    标签: laravel eloquent components laravel-blade


    【解决方案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>
    

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

    【讨论】:

      【解决方案2】:

      因为它是一个组件,所以每次调用它时都必须传递用户参数,例如

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

      【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 2019-10-03
      • 1970-01-01
      • 2014-12-14
      • 2019-04-18
      相关资源
      最近更新 更多