当我尝试使用
User::create[]
方法创建新用户时遇到问题。
我读了Laravel create method这个问题,但它对我没有帮助:
以下是我的用户模型:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password','phone','rating'
];
protected $hidden = [
'password', 'remember_token',
];
}
这里是我的控制器代码:
public function create() {
$input = Request::all();
User::create[$input];
return $input;
}
PhpShtorm 向我显示此通知:
在...中找不到常量创建
我该如何修复它并创建新用户?
您正在尝试将
create
作为数组进行访问,它是一种方法,如下所示:create()
。更改下面代码中的方括号。
您的 IDE 可能无法识别该方法,因为它是使用
magic methods
调用的。如果你想正确识别该方法,请使用laravel-ide-helper。
public function create() {
$input = Request::all();
// $input = request()->all() <-- Using a helper function
User::create($input); // <-- Change this
return $input;
}
您需要致电
create()
。假设你想返回创建的用户,那么就这样做。
public function create()
{
$user = User::create(request()->all());
return $user;
}
如果您确实想返回输入,那么您可以这样做。
public function create()
{
$inputs = request()->all();
User::create($inputs);
return $inputs;
}
同时忽略 IDE 中有关魔术方法和流畅语法的警告。 Laravel 在这方面并不是最友善的。您可以使用这个包来帮助解决这个问题。
此语法在类
bar
中查找名称为 Foo
的常量。
Foo::bar
如果 bar 是一个方法,...你需要用括号调用它
Foo::bar()
如果你写 Foo::bar['foo'];你期望找到一个像
这样的常数class Foo
{
const bar = ['foo' => 'bar'];
}
我认为这不是正确的语法
您位于 App 命名空间中。存在 App\User 类吗? App\User 类有一个方法“create”?
有时,即使代码完美运行,IDE 也会显示错误。