2016-07-31 10 views
0

私の写真を保存したいと思います。すべてのロジックは私のモデルの中にあります。しかし、私のモデルはいつもここでTrying to get a property of non object on line 80.Laravel Static Model非オブジェクトのプロパティを取得しようとしています

を返している私のコードです:UserController.phpで

:User.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(); 
} 

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れますat $path = env('DIRECTORY') . $user->picBaseDir;

私のモデル内にIDを記録しようとしましたが、ret urn正しく。しかし、モデル内にログ$userを入力すると、空に戻ります。

おかげ


は解決策を見つけました。この犯人はユーザーの中の私のグローバルスコープです。ステータスが1であるかどうかだけをチェックします。ユーザーが保存されると、ステータスは依然として0です。

ありがとうございました。

+0

あなたは '$パス= ENV( 'ディレクトリ')の前に' $のuser'をDDにしようとしました。 $ user-> picBaseDir; 'この行? –

+0

私はすでにそれを試してみました。それは私にnullを返します。 – ssuhat

答えて

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 
} 
+0

私はそれを削除しようとしましたが、私はまだ同じ返信します。私は私の質問を更新しました。私はDB :: beginTransactionを私の質問に置くことを忘れてしまいます。 – ssuhat

-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 
} 
+0

まだ、私は非オブジェクトのプロパティを取得しようとします。私は私の質問を更新しました。私はDB :: beginTransactionを私の質問に置くことを忘れてしまいます。 – ssuhat

関連する問題