将新属性设置为现有对象

时间:2015-07-17 12:52:52

标签: php laravel-5

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

这是我的代码:

$q = Question::where('id',$id -> id)->first();
$q[]=$q->push('test',5);
dd($q);

以下是此回报:

  

缺少Illuminate \ Database \ Eloquent \ Model :: setAttribute()的参数2,在   第10231行/home/client/public_html/storage/framework/compiled.php   和定义

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

根据Laravel doc

  

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

因此,push()会尝试对该属性进行预先设定,但它会失败,因为它在模型表中不存在。不使用push(),而是使用动态属性:

$q->randomAttribute = "value";

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