我已经建立了一个新表单,允许某人添加一个用户可以管理的个人资料。
这是一个非常简单的表格,其中包含姓名,头像,运动和描述4个字段
<form method="POST" action="{{ route('add') }}">
@csrf
<div class="form-group row">
<label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label class="col-md-4 col-form-label text-md-right"
for="avatar"
>
Avatar
</label>
<div class="col-md-6">
<input class="form-control @error('name') is-invalid @enderror" value="{{ old('name') }}"
type="file"
name="avatar"
id="avatar"
>
</div>
</div>
<div class="form-group row">
<label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Sport') }}</label>
<div class="col-md-6">
<select name="sport" id="sport" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}">
<option value="Football">Football</option>
<option value="Cricket">Cricket</option>
<option value="Hockey">Hockey</option>
<option value="Basketball">Basketball</option>
</select>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="description" class="col-md-4 col-form-label text-md-right">{{ __('Description') }}</label>
<div class="col-md-6">
<input id="description" type="textarea" class="form-control @error('description') is-invalid @enderror" name="description" required>
@error('description')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Save') }}
</button>
</div>
</div>
</form>
</div>
我添加的控制器如下
public function create()
{
//dd(request());
$attributes = request()->validate([
'name' => 'required',
'avatar' => ['file'],
'sport' => 'required',
'description' => 'required'
]);
if (request('avatar'))
{
$attributes['avatar'] = request('avatar')->store('avatars');
}
Players::create([
'user_id' => auth()->id(),
'name' => $attributes['name'],
'avatar' => $attributes['avatar'],
'sport' => $attributes['sport'],
'description' => $attributes['description']
]);
return redirect('/home');
}
每次我提交表单时,我都会得到302,它会返回到添加表单。
如果我对'avatar'=> $ attributes ['avatar']的值进行硬编码,则会将记录添加到表中,除非文件不会上传到Director中。
我正在本地计算机上工作。
任何帮助将不胜感激
答案 0 :(得分:0)
从here中可以看到,首先需要从请求中获取file
:
$attributes['avatar'] = $request->file('avatar')->store('avatars');
// ^^^^^^^^^^^^^^^^^ -- missing
答案 1 :(得分:0)
似乎我没有在表单上进行正确的设置。
在存储文件时仍然遇到问题,但我想尝试自己解决该问题,以便我可以边做边学。
我感谢大家的帮助