Laravel::创建方法

问题描述 投票:0回答:3

当我尝试使用

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 向我显示此通知:

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

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

php laravel laravel-5
3个回答
4
投票

您正在尝试将

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;
}

2
投票

您需要致电

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


1
投票

此语法在类

bar
中查找名称为
Foo
的常量。

Foo::bar

如果 bar 是一个方法,...你需要用括号调用它

Foo::bar()

如果你写 Foo::bar['foo'];你期望找到一个像

这样的常数
class Foo
{
    const bar = ['foo' => 'bar'];
}

我认为这不是正确的语法

您位于 App 命名空间中。存在 App\User 类吗? App\User 类有一个方法“create”?

有时,即使代码完美运行,IDE 也会显示错误。

© www.soinside.com 2019 - 2024. All rights reserved.