提问人:TraktorJack 提问时间:10/6/2022 最后编辑:Abdulla NilamTraktorJack 更新时间:10/6/2022 访问量:691
Laravel:你如何将数据传递给刀片.php?
Laravel: How do you pass data to a blade.php?
问:
我很难理解如何将数据传递给 .我想将用户的用户名传递给仪表板组件。以下是我尝试过的几件事:.blade
($user)
return view('livewire.dashboard', ['user'=>'$user']);
return view('livewire.dashboard', compact('$user'));
return view('livewire.dashboard'->with('user',$user));
但后来我意识到,我试图从中传递用户信息的类不知道用户变量是什么。下面是类(Dashboard.php):
<?php
namespace App\Http\Livewire;
use Illuminate\Contracts\View\View;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\Container\BindingResolutionException;
use Livewire\Component;
class Dashboard extends Component
{
/**
* @return View|Factory
* @throws BindingResolutionException
*/
public function render()
{
return view('livewire.dashboard');
}
}
这是我的web.php文件:
use App\Http\Livewire\Dashboard;
use App\Http\Livewire\User;
// Dashboard
Route::get('/', Dashboard::class)->name('dashboard');
// I have also tried something like 'Route get user' here, also didn't work
// User routes
Route::prefix('/users')->group(function () {
Route::get('/', User\Index::class)->name('users.index');
Route::get('/create', User\Create::class)->name('users.create');
Route::get('/{user}', User\Edit::class)->name('users.edit');
});
我很难理解组件/类/刀片板如何相互通信。如何将当前登录人员的用户名传递到我的仪表板.blade.php 文件?它看起来像这样:
@isset($user)
Hallo {{ $user->name }},
@endisset
</div>
<div>Willkommen im Formular-Editor!</div>
<div>Neue Formulare kannst du über den Tab "Editor" oben in der Leiste anlegen. Hier kannst Du auch bestehende Formulare bearbeiten.</div>
解释和解决方案将不胜感激,因为我真的不明白 Laravel 是如何工作的。谢谢
答:
1赞
Abdulla Nilam
10/6/2022
#1
你可以通过它们
<livewire:show-post :user="$user">
public function render()
{
return view('livewire.dashboard', ['user' => auth()->user()]);
}
阅读更多 官方LiveWire文档
除了所有
Laravel是一个精心设计的框架。因此,在这里和那里传递登录用户(在控制器中获取并传递给查看),您可以使用 auth()
助手直接访问。$user
在视野中
auth()->id();
auth()->user();
评论
0赞
TraktorJack
10/6/2022
谢谢!是这样解决的: public function render() { return view('livewire.dashboard', ['user'=>auth()->user()]);
0赞
Abdulla Nilam
10/6/2022
不要通过火线传递它。删除它,并且仍然可以使用以下命令在刀片文件中访问auth()->user()
2赞
Peppermintology
10/6/2022
#2
当您使用 Livewire 时,您可能希望利用数据绑定(Livewire 的好处之一)。
您可以做的是在组件上定义一个属性,然后您可以在视图中访问该属性。$user
Dashboard
dashboard.blade.php
您的组件可能如下所示(为简洁起见,我省略了代码)Dashboard
class Dashboard extends Component
{
public $user;
/*
* The mount() function is Livewires equivalent of __construct()
*/
public function mount()
{
$this->user = Auth::user();
}
public function render()
{
return view('livewire.dashboard');
}
}
那么在您的视图中,您只需访问$user
Hallo {{ $user->name }}
评论
0赞
Peppermintology
10/6/2022
@AbdullaNilam 嗯,是的,我确实在我的回答中提到了这一点,并且 - 根据原始问题 - 一个.Dashboard
Livewire Component
0赞
user19949844
10/6/2022
#3
以更简单的方式,您可以像在第二步中使用一样使用紧凑型。从用户变量中删除 $ 所需的唯一更改。
例如。
return view('livewire.dashboard', compact('user'));
评论