【发布时间】:2018-08-07 14:19:40
【问题描述】:
我目前正在学习有关 Laravel 的在线课程,但我遇到了一些关系。过去 3 小时我一直在寻找一个错误,但我无法找到它。
基本上,我有一个用户填写的表单和一个他加载图片的字段。对于那张照片,我在数据库中有两个单独的表(照片 - 包含有关该照片和用户的信息 - photo_id 应该去哪里)。我遵循了课程中的所有步骤,但是在我的数据库中插入图片后,关系无法正常工作。我将在下面提供我拥有的所有代码。
用户-照片关系:
public function photo(){
return $this->belongsTo('App\Photo');
}
在数据库中保存表单数据并在控制器中创建图片:
public function store(UsersRequest $request)
{
$input = $request->all();
if ($file = $request->file('photo_id')){
$name = time().$file->getClientOriginalName();
$file->move('images', $name);
$photo = Photo::create(['file'=>$name]);
$input['photo_id'] = $photo->id;
}
$input['password'] = bcrypt($request->password);
User::create($input);
return redirect('/admin/users');
}
这是我的图片输入框:
<div class="form-group">
{!! Form::label('photo_id','Photo: ') !!}
{!! Form::file('photo_id', null , ['class'=>'form-control']) !!}
</div>
这段代码没有给我任何错误,但我的关系不能正常工作。照片表没有填充任何数据,在我的用户表中,photo_id 列填充了照片名称,而不是应有的 id。
我真的很感激这里的任何帮助。如果我忘记在这里提供任何其他内容,请告诉我。
【问题讨论】:
-
你能分享一下UsersRequest吗?我会将 photo_id 更改为 photo 以使所有内容更清晰(因为该字段应包含文件,而不是 id)
-
这是我的用户请求:
public function rules() { return [ 'name'=>'required', 'email'=>'required', 'password'=>'required', 'role_id'=>'required', 'is_active'=>'required', ]; } -
而photo_id实际上应该包含照片的ID,并且上传的照片存储在另一个表中-照片(具有“文件”字段)