我想保存我的照片,所有逻辑都在我的模型中。但我的模型总是返回Trying to get a property of non object on line 80.
这是我的代码:
在UserController.php中:
DB::beginTransaction();
try{
$user = new User($request->all());
if($user->save()){
User::savePicture($user->id, $request->cover);
}
DB::commit();
} catch(\Exception $e){
DB::rollback();
}
在User.php(Model)中:
protected $picBaseDir = 'images/users/pic/';
public static function savePicture($id, UploadedFile $file)
{
$user = static::find($id);
$path = env('DIRECTORY') . $user->picBaseDir;
makePath($path);
// all other logic to move the image, etc
}
第80行是$path = env('DIRECTORY') . $user->picBaseDir;
我已经尝试在我的模型中记录id,它正确返回。但是当我在模型中尝试log $user
时,它返回空。
任何解决方案?
由于
找到解决方案。罪魁祸首是我在用户内部的全球范围。它仅检查状态是否为1.保存用户时,状态仍为0.
感谢。
答案 0 :(得分:0)
实际上,我没有发现你的代码有问题,但我认为没有理由使用静态功能。让您的用户自己保存图片。
// UserController.php
$user = new User($request->all());
if($user->save()){
$user->savePicture($request->cover);
}
// User.php
protected $picBaseDir = 'images/users/pic/';
public function savePicture(UploadedFile $file)
{
$path = env('DIRECTORY') . $this->picBaseDir;
makePath($path);
// all other logic to move the image, etc
}
答案 1 :(得分:-1)
// UserController.php
$user = new User($request->all());
if($user->save()){
User::savePicture($user->id, $request->cover);
}
// User.php
protected $picBaseDir = 'images/users/pic/';
public static function savePicture($id, UploadedFile $file)
{
$user = User::find($id);
$path = env('DIRECTORY') . $user->picBaseDir;
makePath($path);
// all other logic to move the image, etc
}