Mat*_*ias 3 laravel visual-studio-code laravel-blade
一切似乎都正常,但 VSCODE 在尝试时不断报告错误。说方法还没有定义。
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class RegisterController extends Controller
{
public function index()
{
return view('auth.register');
}
public function store(Request $request)
{
//validation
$this->validate($request, [
'name' => 'required|max:50',
'username' => 'required|max:50',
'email' => 'required|email|max:250',
'password' => 'required|confirmed',
]);
//create new user
User::create([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
auth()->attempt($request->only('email','password'));
return redirect()->route('dashboard');
//sign the user in
//redirect
}
}
Run Code Online (Sandbox Code Playgroud)
这是 vscode 的问题还是我遗漏了什么?
所以我想我遵循了TraversyMedia的嘉宾 Alex 的相同教程,并偶然发现了同样的问题。
\n虽然抑制诊断显然有效,但这并不完全是我想要的(不会接受)。
\n在这种情况下,该方法attempt存在,所以我只希望很棒的 Intelephense 扩展能够识别它。
我将尝试解释,以便它不仅仅适用于这种情况。
\nCtrl + click应该auth()有该方法将我们带到helpers.php定义该函数的文件。
在那里我们看到了一小段带有if语句的代码,但无论哪种方式它都会返回相同的类,即AuthFactory.
所以我们再次Ctrl + click发现AuthFactory自己盯着Factory命名空间接口Illuminate\\Contracts\\Auth;
现在我们可以使用 PHPDocs 告诉 Intelephenseattempt可以在此接口的实例上使用名为的方法。interface Factory请注意下面完整代码中声明上方的“注释”(PHPDocs) 。
<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\n/**\n * @method attempt\n */\ninterface Factory\n{\n /**\n * Get a guard instance by name.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Auth\\Guard|\\Illuminate\\Contracts\\Auth\\StatefulGuard\n */\n public function guard($name = null);\n\n /**\n * Set the default guard the factory should serve.\n *\n * @param string $name\n * @return void\n */\n public function shouldUse($name);\n}\nRun Code Online (Sandbox Code Playgroud)\n瞧\xc3\xa0!
\n只有当该方法确实存在时才应该这样做,否则你就是在钉死自己的棺材。
\n| 归档时间: |
|
| 查看次数: |
7139 次 |
| 最近记录: |