php代码,在这里,无论我使用fillable或gaurded,我得到相同的错误.
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
*@var array
*/
// protected $fillable = [
// 'name',
// 'email',
// 'password',
// ];
protected $guarded = [];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
php代码,在这里,我试过批量赋值
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\User;
use Illuminate\Database\Eloquent\Model;
class UserController extends Controller
{
public function index()
{
$data = [
'name' => 'elon',
'email' => 'elon@gmail.com',
'password' => 'password',
];
User::create($data);
$user = User::all();
return $user;
}
}
8条答案
按热度按时间yhived7q1#
您似乎没有从UserController.php中正确的名称空间导入用户类
您正在使用
用途
而不是。
编辑:
$fillable在这种情况下不是问题,因为$guarded被设置为一个空数组,允许所有字段都可以通过create方法进行批量赋值。
wribegjk2#
提供的代码中存在两个问题:
1.正如@sta所评论的,应该通过使用
User
类中的$fillable
属性来允许Model
属性被批量赋值:1.正如@雷米所评论的,我们应该确保使用正确的
class
:jqjz2hbq3#
我发现这对我在laravel 8中很有帮助,这在所有版本中都很好用,因为很多时候如果我们导入类,它会自动导入另一个,所以请检查您导入的是这个类还是另一个类。
dba5bblo4#
在
UserController.php
中尝试使用gkl3eglg5#
在laravel7中,这对我很有效:
mpgws1up6#
对我来说,我不得不用
ctrl + c
停止终端中的服务器,然后用php artisan serve
重新启动服务器。a64a0gku7#
在我的模型中加入这个
受保护$受保护= [];
它把我从痛苦中解救出来谢谢!
ldfqzlk88#
在Laravel 9中,您可以通过以下步骤解决此问题:
1.打开位于app/Models/User.php的用户模型文件。
1.在模型中找到$fillable属性。
1.将_token添加到可填充属性数组中。$fillable属性应如下所示:
protected $fillable = [ '名称','电子邮件','密码','_令牌',];
1.将更改保存到用户模型文件。通过此更改,您现在可以使用批量分配来设置用户模型上的_token属性。
请注意,将_token添加到$fillable属性可能会带来安全隐患,因此请确保了解风险并采取适当的措施来保护应用程序。