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'));
}