如何在 PhpStorm 9 中为 Blade 模板自动完成变量?
How I can make variables autocomplete in the PhpStorm 9 for Blade templates?
我希望在 blade 模板中考虑 PHPdoc 块。
PhpStorm 9,Laravel 5.1,blade 模板文件:
<?php
/* @var App\Models\User $user */
?>
...
<?= $user->email ?> <- autocomplete for the word "email" is working
...
{{ $user->email }} <- autocomplete not working
我尝试了不同的变体:
{{
/**
* @var App\Models\User $user
**/
}}
{{ /* @var App\Models\User $user */ }}
...
{{ $user->email }} <- autocomplete not working...
...
In such variant autocomplete works, but only within that block:
{{
/* @var App\Models\User $user */
$user->email
}}
...
{{ $user->email }} <- here does not work again...
如何使自动完成功能在 blade 个模板的所有块中工作?
到目前为止,由于 PHPStorm 不支持 Blade 模板,这还不是完全可行的。
这个包可能对其他 Laravel 相关问题有用 https://github.com/barryvdh/laravel-ide-helper
ATM PhpStorm 不支持 blade 模板中使用 blade 语法的 PHPDoc 注释(特别是对于完成 blade 变量)。
请关注这些工单 (star/vote/comment) 以获得进度通知:
您现在可以随心所欲了:
<?php
/* @var App\Models\User $user */
?>
...
{{ $user->email }} <- autocomplete working
见https://blog.jetbrains.com/phpstorm/2017/02/code-completion-in-laravel-blade-templates/
大致相同的答案,只是包装在 blade 指令中:
@php /** @var App\Models\User $user */ @endphp
{{ $user->email }}
为避免必须明确定义每个要在模板中使用的 属性,您可以执行以下操作:
首先:在控制器
中将要公开给模板的属性声明为键入的public属性
class CreateAccountController extends Controller
{
public ?string $foo = null;
第二:在您的视图值中使用 $this
return view('auth.create_account', [
'this' => $this,
]);
第三:在控制器顶部声明 $this
@php /** @var \App\Http\Controllers\Auth\CreateAccountController $this */ @endphp
第四:在你的模板中使用 $this
<div class="card-header">{{ $this->foo }}</div>
您可以在视图中随意调用“$this”。 $model 可能是一个更好的术语。
我希望在 blade 模板中考虑 PHPdoc 块。
PhpStorm 9,Laravel 5.1,blade 模板文件:
<?php
/* @var App\Models\User $user */
?>
...
<?= $user->email ?> <- autocomplete for the word "email" is working
...
{{ $user->email }} <- autocomplete not working
我尝试了不同的变体:
{{
/**
* @var App\Models\User $user
**/
}}
{{ /* @var App\Models\User $user */ }}
...
{{ $user->email }} <- autocomplete not working...
...
In such variant autocomplete works, but only within that block:
{{
/* @var App\Models\User $user */
$user->email
}}
...
{{ $user->email }} <- here does not work again...
如何使自动完成功能在 blade 个模板的所有块中工作?
到目前为止,由于 PHPStorm 不支持 Blade 模板,这还不是完全可行的。
这个包可能对其他 Laravel 相关问题有用 https://github.com/barryvdh/laravel-ide-helper
ATM PhpStorm 不支持 blade 模板中使用 blade 语法的 PHPDoc 注释(特别是对于完成 blade 变量)。
请关注这些工单 (star/vote/comment) 以获得进度通知:
您现在可以随心所欲了:
<?php
/* @var App\Models\User $user */
?>
...
{{ $user->email }} <- autocomplete working
见https://blog.jetbrains.com/phpstorm/2017/02/code-completion-in-laravel-blade-templates/
大致相同的答案,只是包装在 blade 指令中:
@php /** @var App\Models\User $user */ @endphp
{{ $user->email }}
为避免必须明确定义每个要在模板中使用的 属性,您可以执行以下操作:
首先:在控制器
中将要公开给模板的属性声明为键入的public属性class CreateAccountController extends Controller
{
public ?string $foo = null;
第二:在您的视图值中使用 $this
return view('auth.create_account', [
'this' => $this,
]);
第三:在控制器顶部声明 $this
@php /** @var \App\Http\Controllers\Auth\CreateAccountController $this */ @endphp
第四:在你的模板中使用 $this
<div class="card-header">{{ $this->foo }}</div>
您可以在视图中随意调用“$this”。 $model 可能是一个更好的术语。