2016-09-11 4 views
1

私の関数を作成しようとしましたが、idが空の場合、関数は空の配列を返し、 "非オブジェクトのプロパティを取得しようとしています" ... laravel 5.2laravelを使用して非オブジェクトのプロパティを取得しようとしています

public static function NameFunction($id) { 
    if(!empty($id)) { 
     $Table = Table::find($id); 
     if(count($Table) > 0) 
     { 
      return $Table; 
     } 
    } else { 
     $return = array('name' => 'NULL'); 
     return $return; 
    } 
} 
私は

{{ ClassName::NameFunction($idCat)->name }} 

機能を使用する方法

私が知っているがオブジェクトではありませんが、私はこれをどのように修正することができますか?

+0

を動作するはずだと思います。配列はオブジェクトではありません。 –

+0

Yeap bro、しかしどうすれば修正できますか? –

+0

質問を明確にしてください。あなたは何を達成しようとしていますか?あなたがテンプレートエンジンでそれを使用しようとしているようです。あなたはそれを使用する前に 'name'が存在するかどうかを確認するか、 'name'プロパティを持つ関数からオブジェクトを返す必要があります –

答えて

0

私はLaravelでこれを解決するための慣用的な方法はわかりませんが、いくつかの項目が見つからない場合、何か他のものを実行する必要があると思います。

public static function NameFunction($id) { 
    if(!empty($id)) { 
     $Table = Table::find($id); 
     if(count($Table) > 0) 
     { 
      return $Table; 
     } 
    } 

    return false; 
} 

$name = ClassName::NameFunction($idCat); 
if ($name && !empty($name->name)) { 
    echo $name->name; 
} else { 
    echo 'Not found' 
} 

それとも、あなたがキャッチできる例外を発生させますfindOrFailの代わりfindを使用することができますので、多分あなたのような何かを確認する必要があります。

0

私は配列が__no__性質を持っているのでこの1つは

public static function NameFunction($id) { 
    $default = array('name' => null); 
    if(!empty($id)) { 
     $Table = Table::find($id); 
     if(count($Table) > 0) 
     { 
      return $Table; 
     } 
     else 
     { 
      return $default; 
     } 
    } else { 
     return $default; 
    } 
} 
関連する問題