为现有对象设置新属性


Set new attribute to existing object

我正在尝试添加一个新项目到我的对象,但我得到一个错误:

下面是我的代码:
$q = Question::where('id',$id -> id)->first();
$q[]=$q->push('test',5);
dd($q);

返回的结果如下:

为Illuminate'Database'Eloquent'Model::setAttribute()调用缺少参数2/home/client/public_html/storage/framework/compile_php并定义

你知道怎么解决这个问题吗?

根据Laravel文档

有时您可能不仅希望保存一个模型,还希望保存它的所有关系。为此,您可以使用push方法

因此,push()将尝试保留该属性,但它将失败,因为它不存在于模型表中。而不是使用push(),使用动态属性:

$q->randomAttribute = "value";

我不知道你以后打算如何使用这个属性,也许那时我可以给你一个更好的答案。