当我尝试使用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向我显示了这个通知:
在...中找不到常量创建
如何修复它并创建新用户?
答案 0 :(得分:2)
您尝试以数组形式访问create
,这是一种方法,如下所示:create()
。更改下面代码中的方括号。
您的 IDE 可能无法识别该方法,因为它是使用magic methods
调用的。如果要正确识别方法,请使用laravel-ide-helper。
public function create() {
$input = Request::all();
User::create($input); // <-- Change this
return $input;
}
答案 1 :(得分:1)
您需要致电create()
。假设您要返回创建的用户,请执行此操作。
public function create()
{
$user = User::create(request()->all());
return $user;
}
如果你真的想要返回输入,那么你可以这样做。
public function create()
{
$inputs = request()->all();
User::create($inputs);
return $inputs;
}
同时忽略IDE中魔术方法和流畅语法的警告。 Laravel并不是最善良的。你可以使用这个软件包来帮助解决这个问题。
答案 2 :(得分:0)
此语法在类bar
中查找名为Foo
的常量。
Foo::bar
如果bar是一种方法,...你需要用parenthesys调用它
Foo::bar()
如果你写Foo :: bar [&#39; foo&#39;];你希望找到像
这样的常数class Foo
{
const bar = ['foo' => 'bar'];
}
我不认为这是正确的语法
您在App命名空间中。存在App \ User类?而App \ User类有一个方法&#39;创建&#39;?
即使代码工作正常,IDE也会显示错误。