我在更新用户模型中的字段时遇到问题。
我有一个字段用于激活定义为boolean的public_profile:
...
$table->boolean('public_profile')->default(false);
...
在模型中我定义。
protected $fillable = [..., 'public_profile', ...];
现在我尝试通过axios更新字段,具体取决于复选框的状态。
$('#change_public_profile').change(function () {
message={
_token: $('meta[name="csrf-token"]').attr('content'),
public_profile: $('#change_public_profile').is(':checked')
}
axios.post('SOME URL', message).....
现在在我的控制器中我读了请求:
$public_profile = $request->input('public_profile');
并调用函数:
Auth::user()->togglePublicProfile($public_profile);
在用户模型中,我有以下功能:
public function togglePublicProfile($toggleTo){
$user = $this;
$user->public_profile = $toggleTo;
return $user->save();
}
我也尝试使用boolval()作为Mutator,但它从未改变过。 我也这样做,以便对一个字符串值进行处理,并且它运行良好。
我的错误在哪里?
答案 0 :(得分:0)
由于你有boolean(true / false),你不需要得到任何输入($ toggleTo),因为你只有两个状态。每次调用此选项时,您都可以设置相反的值。
$this->public_profile = !$this->public_profile;
$this->save();