Laravel :: create方法

时间:2017-05-29 12:35:53

标签: php laravel laravel-5

当我尝试使用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向我显示了这个通知:

  

在...中找不到常量创建

如何修复它并创建新用户?

3 个答案:

答案 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并不是最善良的。你可以使用这个软件包来帮助解决这个问题。

https://github.com/barryvdh/laravel-ide-helper

答案 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也会显示错误。