2017-11-06 24 views
0

解決済み:以下の回答があります。プロパティ[仕様]がこのコレクションインスタンスに存在しません

私はLaravelプロジェクトを5.3から5.4にアップグレードしてから5.5にアップグレードしました。現時点では壊れている

だけの事は、私は、製品の編集ページに行くと、私はエラーを取得する次のとおりです。

Property [specifications] does not exist on this collection instance. 

例外:ブレードにこの行によって引き起こされる

public function __get($key) 
    { 
     if (! in_array($key, static::$proxies)) { 
      throw new Exception("Property [{$key}] does not exist on this collection instance."); 
     } 

     return new HigherOrderCollectionProxy($this, $key); 
    } 

テンプレート:

@if($categories->specifications->first()) 

$categories変数はProductControllerから表示するために渡されますEこの:このコード行が壊れている可能性が5.4/5.5に変更されている何

$categories = Category::with('specifications.attributes')->find($product->getCategoryId()); 

enter image description here

答えて

1

仕様にアクセスする前に何らかの理由でを$categoriesに追加する必要がありました。この$product->categories->first()が正常に動作し、コントローラ内のカテゴリと同じように返されますが、別の->first()を必要としない、同じビューで

$categories->first()->specifications->first()

。理由は分かりません。

+0

"何らかの理由で" ...理由は '$ categories'は' Collection'であり、 'specifications'プロパティやメソッドを持たないからです。 ' - > first()'を呼び出すと 'specifications'プロパティ(この場合は' Collection')が関連付けられた単一の 'Category'モデルが返されます。これはLaravelを使用するときに誰もが直面する共通の問題です。あなたの '$ thing 'がそのプロパティにアクセスしようとしているときに気をつけてください。 –

関連する問題