我有一个
sidebar.blade.php
,我在其中显示从数据库中提取的各种内容。
@php
$syncLogsCountPending = $sidebarCounters['sync_logs']['pending'];
$syncLogsCountCompleted = $sidebarCounters['sync_logs']['completed'];
@endphp
<nav id="sidebar" class="col-md-3 col-lg-2">
cut
</nav>
我的 IDE 以红色突出显示 $sidebarCounters,因为它认为该变量未定义。
我有点理解这种行为,因为这是该变量在模板中第一次出现,但显然该变量确实存在,但来自:
<?php
namespace App\Http\Composers\Backend;
use App\Repositories\Sync\SyncLogRepository;
use Illuminate\View\View;
class SidebarComposer
{
public function __construct(
private readonly SyncLogRepository $syncLogRepository
) {}
public function compose(View $view): void
{
$view->with('sidebarCounters', $this->getSidebarCounters()); // <---- 👋
}
private function getSidebarCounters(): array
{
return [
'sync_logs' => [
'pending' => 0,
'completed' => $this->syncLogRepository->getFinishedCount(),
],
];
}
}
如何让 IDE 变得更智能?我可以在
@php
和 @endphp
标签中添加任何注释吗?
您可以使用docblock来实现您想要的:
@php
/** @var array $sidebarCounters */
$syncLogsCountPending = $sidebarCounters['sync_logs']['pending'];
$syncLogsCountCompleted = $sidebarCounters['sync_logs']['completed'];
@endphp
<nav id="sidebar" class="col-md-3 col-lg-2">
cut
</nav>