gpt4 book ai didi

php - Eloquent:如何在使用 create() 方法时为 protected 列赋值?

转载 作者:可可西里 更新时间:2023-11-01 07:17:44 24 4
gpt4 key购买 nike

假设我有一个用于用户提交表单的端点。表单输入将作为 JSON 对象存储在数据库表的一列中,用户 ID 将存储在另一列中。因为我不希望用户能够以某种方式设置他们想要的任何用户 ID,所以我在 Eloquent 模型的 $fillable 变量中保留了 user_id 列。

create() 方法接受要分配的键/值对数组,但只会将值分配给可填充的列。如何同时将用户的 ID 添加到 protected user_id 列?作为第二个操作,我是否必须获取最后一行并更新用户 ID?

感谢所有帮助,非常感谢。

最佳答案

如果您在 $fillable 中没有属性,并不意味着您不能填充它。

$fillable 属性包含可以使用 create()fill() 方法填充的属性,但您仍然可以设置值对于使用属性访问的任何属性。

因此,假设您的模型具有 emailsomethingelse 属性。您可以像这样设置 $fillable:

protected $fillable = ['email', 'something'];

现在假设您有这样的数据:

$data = [
'email' => 'sample@example.com',
'something' => 'foo',
'else' => 'bar',
];

所以现在当你使用:

Model::create($data);

您将只填写emailsomething 因为它们在$fillableelse 不会被填充,因为它不是,但你总是可以做这样的事情:

$model = new Model($data);
$model->else = 'bar';
$model->save();

因此您可以在此处设置 else 属性值,即使它不在 $fillable 中,但您需要像访问普通属性一样访问它。

关于php - Eloquent:如何在使用 create() 方法时为 protected 列赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com