我在Laravel工作的照片上传系统遇到了一些麻烦。到目前为止,我有文件进入并保存在公共/图像/配置文件中,但我无法弄清楚如何使用正确的信息将其插入到数据库中。目前我正在“调用未定义的方法Illuminate \ Database \ Eloquent \ Collection :: save()”错误。
在我的控制器中,我正在尝试通过这样做来插入它:
public function updatePhotos($id)
{
if(Input::hasFile('image'))
//If file is being added
{
$extension = Input::file('image')->getClientOriginalExtension();
$fileName = str_random(9).'.'.$extension;
$user = User::find($id);
$user->profile->photo->type = 1;
$user->profile->photo->filename = $fileName;
$user->profile->photo->save();
Input::file('image')->move('public/images/profiles/',$fileName);
}
}
在照片模型中:
public function profile()
{
return $this->hasOne('Profile');
}
在个人资料模型中,我有:
public function photo()
{
return $this->hasMany('Photo','user_id','user_id');
}
有人能为我发送正确的课程吗?
由于
答案 0 :(得分:0)
您正在尝试保存用户模型,您必须创建一个新的照片模型,用数据填充并保存。
public function updatePhotos($id)
{
$image = new Image();
$image->user_id = Auth::id();
$image->fill(Input::all());
if (Input::hasFile('file')) {
$file = Input::file('file');
$image->extension = $file->guessClientExtension();
$image->size = $file->getClientSize();
$image->filename = str_random(9) . '.' . $image->extension;
$uploadSuccess = $file->move('public/images/profiles/', $image->filename);
$image->save();
$user = User::find($id);
$user->image = $image->id;
$user-save();
}
}
}
user_id
设置为当前用户ID。fillable
字段都填写了表单中的数据。$image->user_id = Auth::id();
public/images/profiles/
文件夹中。image
字段分配图像ID并保存用户对象。