我想允许用户更新他们在页面上创建的个人资料但是我收到一条错误消息,说我正在尝试分配非对象的属性:
但是用户和Twitter确实有价值。
在数据库字段中称为twitter_personal,当然id是id。
控制器:
function updateProfile(Request $request) {
$user = Auth::id();
$twitter = $request->input('twitter');
$user->twitter_personal = $twitter;
$user->save();
if($user->save()) {
$message = 'Success';
}else{
$message = 'Error';
}
return redirect()->back()->withInput()->with('message', $message);
}
形式:
<form class="form-horizontal" role="form" method="POST" action="{{ action('ProfileController@updateProfile') }}">
{{ csrf_field() }}
<div class="form-group{{ $errors->has('url') ? ' has-error' : '' }}">
<label for="twitter" class="col-md-4 control-label">Twitter</label>
<div class="col-md-6">
<input id="twitter" type="text" class="form-control" name="twitter">
@if ($errors->has('url'))
<span class="help-block">
<strong>{{ $errors->first('url') }}</strong>
</span>
@endif
</div>
</div>
所以这就是问题,我该如何解决?有没有更好的方法呢?如果是的话请提供一个例子!
答案 0 :(得分:2)
函数Auth::id()
将返回当前已验证用户的标识符。
如果您需要用户模型,则应该使用:
Auth::user()
如果您不想使用Auth
外观,则可以让用户与当前请求相关联:
$request->user()