Laravel Eloquent 无法为模型的关系属性赋值

Cow*_*irl 1 laravel eloquent laravel-5

我无法为模型的属性赋值

App\person::find(1)->plan
Run Code Online (Sandbox Code Playgroud)

这个命令给了我类似 artisantinker 的东西

     id: 1,
     name: "name",
     description:"",
Run Code Online (Sandbox Code Playgroud)

我正在尝试指定一个值description

App\person::find(1)->plan->description='something'
Run Code Online (Sandbox Code Playgroud)

它输出

'something'
Run Code Online (Sandbox Code Playgroud)

但它没有将其保存在描述中,我仍然明白这一点

     id: 1,
     name: "name",
     description:"",
Run Code Online (Sandbox Code Playgroud)

我尝试了几个命令,但没有任何效果

App\person::find(1)->plan->description='something'->save();
App\person::find(1)->plan->description->save('something');
Run Code Online (Sandbox Code Playgroud)

我做错了吗?是的,模型的属性已设置为fillable

Fra*_*ard 5

为了拯救你必须

$person= App\person::find(1);
$person->plan->description='something';
$person->plan->save();
Run Code Online (Sandbox Code Playgroud)

或者,如果您需要一件内衬,请这样做

App\person::find(1)->plan->fill(['description' => 'something')->save();
Run Code Online (Sandbox Code Playgroud)

您所做的方式将尝试在字符串上执行保存:

App\person::find(1)->plan->description='something'->save();
Run Code Online (Sandbox Code Playgroud)