2016-09-10 9 views
0

laravelを使用してプロフィール写真をアップロードできるようにしようとしています。ユーザーモデルでdp()関数を実行すると、オブジェクト以外のエラーが発生します。 私のユーザモデル: `` `Laravelのユーザープロフィール写真、非オブジェクトエラー

public function dp() 
    { 
     return $this->hasMany('Blog\models\Dp', 'user_id'); 
    } 
    public function getDp() 
    { 
     if (!$this->dp()){ 
      return 'public/image/standard_dp.jpg'; 
     } 
     return $this->dp()->orderBy('created_at', 'desc')->first()->url; 
    } 

` `` エラーは、このコードの最後の行に2番目におそらくですが、私はDDを実行すると、代わりにリターンのエラーはありません。 誰も助けることができますか?

+0

私は最初の '()'の呼び出しを推測しています非オブジェクトを返しました。 'dd($ this-> dp() - > orderBy( '​​created_at'、 'desc') - > first())'を試して、その内容を見てください。 – ntzm

+0

'firstOrFail()'を使って –

答えて

0

はこれであなたのgetDp()方法を交換してみてください:

public function getDp() 
{ 
    if ($this->dp->isEmpty()) { 
     return 'public/image/standard_dp.jpg'; 
    } 

    return $this->dp->sortByDesc('created_at')->first()->url; 
} 
+0

をデバッグすることもできますが、isEmpty()とsortByDesc()関数はエラーを投げました – h834mi

0

私は次のようにgetDp()関数を置き換えたときにそれが働いた:

 public function getDp() 
{ 
    if ($this->dp()->count()===0) 
    { 
     return 'public/image/standard_dp.jpg'; 
    } 
    return $this->dp()->orderBy('created_at', 'desc')->first()->url; 
}