![](/img/trans.png)
[英]How do you get your data to show in your browser once using Laravel php blade?
[英]Laravel blade: How do you delete prepoulated form field data (save in db as null)
我正在构建一些表单,其中用数据库数据填充字段,如果没有数据,则默认为占位符文本。
我似乎无法弄清楚的是:当用户以表格形式删除所有数据时,不会将其另存为空/空的形式保存到数据库中,它只是在字段中带有相同的值...
输入:
<div class="form-group @if($errors->has('username')){{ 'has-error' }}@endif">
<div class="col-md-6">
<label for="username">Username</label>
@if($errors->has('username'))<span class="label-has-error">{{ $errors->first('username') }}</span>@endif
<input type="text" name="username" class="form-control" tabindex="1" @if($info->username) value="{{ e($info->username) }}" @else placeholder="Username" @endif>
</div>
</div>
控制器:
public function postSettings() {
$validator = Validator::make(Input::all(),
array(
'username' => 'required_without_all:location,fullname|min:3',
'fullname' => 'required_without_all:location,username',
'location' => 'required_without_all:fullname,username'
)
);
if($validator->fails()) {
return Redirect::route('settings')->withErrors($validator);
} else {
$user = User::find(Auth::user()->id);
if(Input::get('username')) {
$user->username = Input::get('username');
}
if(Input::get('fullname')) {
$user->fullname = Input::get('fullname');
}
if(Input::get('location')) {
$user->location = Input::get('location');
}
$user->save();
Flash::success('Settings have been updated');
return Redirect::route('settings');
}
Flash::error('Update was unsecessful, please try again!');
return Redirect::route('settings');
}
关于如何实现此目标的任何想法?
谢谢,杰克。
问题是if
语句。
您应该尝试更改:
if(Input::get('username')) {
$user->username = Input::get('username');
}
if(Input::get('fullname')) {
$user->fullname = Input::get('fullname');
}
if(Input::get('location')) {
$user->location = Input::get('location');
}
成
$user->username = Input::get('username');
$user->fullname = Input::get('fullname');
$user->location = Input::get('location');
现在,如果这些输入为空, if
语句将返回false,因此将不执行赋值操作,最后将您从中获得的数据完全保存到数据库中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.