Laravel组件数据传递

Laravel组件数据传递,laravel,Laravel,有人能告诉我这个组件有什么问题吗。。。 以下是错误: Undefined variable: users (View: C:\xampp\htdocs\...\resources\views\components\sidebar-users.blade.php) 以下是该视图/组件: <div> <!-- Users Widget --> <div class="card my-4"> <h5 class="car

有人能告诉我这个组件有什么问题吗。。。 以下是错误:

Undefined variable: users (View: C:\xampp\htdocs\...\resources\views\components\sidebar-users.blade.php)
以下是该视图/组件:

<div>
<!-- Users Widget -->
<div class="card my-4">
    <h5 class="card-header">Latest Users</h5>
    <div class="card-body">
        <div class="row">
            <div class="col-lg-12">
                <ul class="list-unstyled mb-0">
                    @foreach($users as $user)
                        <li>{{ $user }}</li>
                    @endforeach
                </ul>
            </div>
        </div>
    </div>
</div>
 <?php

namespace App\View\Components;

use App\Models\User;
use Illuminate\View\Component;

class SidebarUsers 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|string
 */
public function render()
{
    return view('components.sidebar-users', [
        'users' => $this->users()
    ]);
}

public function users()
{
    return User::orderBy('created_at', 'desc')->take(5)->get();
}
然后在_u构造中

public $users;



 ...  __construct($users){
$this->users=$users;
}
然后在家里接受它就像刀片一样

.... <x-sidebar-users :users="$users"/> ...
。。。

我得到了同样的错误。。。有人知道解决方案吗?

请删除该功能,然后尝试以下操作

public function render(){
$users = User::orderBy('created_at', 'desc')->take(5)->get();
return view('components.sidebar-users' , compact('users'));
}

在我看来你把事情搞得太复杂了。。。保持简单首先,您不必手动调用
users()
方法


其次,您是否尝试清除所有缓存?我记得同样的错误是由于缓存造成的。

同样的错误再次出现,我当时正在跟踪laravel docs:3您确定您正在从查询返回结果吗?对用户执行dd并告诉我您看到了什么变量应该在您的视图中,在循环之前在您的视图中执行此操作,
{{dd($users)}
它显示了从db发送的所有五个输入。。。与上一次相同。照片我现在有点困惑xDOk,所以变量肯定在您的视图中。您仍然会得到相同的错误
未定义的变量:users(视图:C:\xampp\htdocs\…\resources\views\components\sidebar users.blade.php)
?我已经清除了,但还是一样的:3但什么意思是我不需要手动调用users()?您不必将其作为
视图
函数的参数传递。顺便说一句,请尝试
dd('component created')
在构造函数中检查它是否被创建。它是创建的。我使用make:component和php Artisan我的意思是在运行时使用哪个版本的Laravel?是组件的位置
App\View\Components\SidebarUsers.php
.... <x-sidebar-users :users="$users"/> ...
public function render(){
$users = User::orderBy('created_at', 'desc')->take(5)->get();
return view('components.sidebar-users' , compact('users'));
}