2016-08-26 11 views
1

Laravelフレームワークv5.3.2とdimsav/aravel-translatableパッケージv6.0.1をインストールしました。私は、同じモデルのbelongsTo()関係(親)からデータを取得することに問題があります。Laravel 5はbelongsTo()の関係のオブジェクトではなくJSONを返します

Category.phpすべてのカテゴリのリストを取得するためのモデル

class Category extends Eloquent 
{ 
    public $translatedAttributes = [ 
     'name', 'slug', 'description' 
    ]; 

    public function category() 
    { 
     return $this->belongsTo('App\Model\Category', 'category_id', 'id'); 
    } 

    public function categories() 
    { 
     return $this->hasMany('App\Model\Category', 'category_id', 'id'); 
    } 
} 

方法:私はビューでname属性を印刷するとき

$categoryModel = new Category; 
$categories = $categoryModel->with('category.translations')->get(); 

、Laravelが例外をスロー:「のプロパティを取得しようとすると、非対象 "となる。

<?php foreach ($categories as $category): ?> 
    Name: <?php echo $category->category->name; ?> 
<?php endforeach; ?> 

しかし、私はそれが動作配列として値を取得しよう:私はのvar_dump($ category->カテゴリ)にしてみてください

<?php foreach ($categories as $category): ?> 
    Name: <?php echo $category->category['name']; ?> 
<?php endforeach; ?> 

もう一つ、 foreachの内部に、私はこれを取得: foreachの内部ビューでDD($カテゴリ)

object(App\Model\Category)[221]... 

結果:

Category {#231 ▼ 
    #table: "category" 
    +translatedAttributes: array:4 [▶] 
    +timestamps: false 
    #connection: null 
    #primaryKey: "id" 
    #keyType: "int" 
    #perPage: 15 
    +incrementing: true 
    #attributes: array:3 [▶] 
    #original: array:3 [▶] 
    #relations: array:2 [▼ 
     "category" => Category {#220 ▶} 
     "translations" => Collection {#228 ▶} 
    ] 
    #hidden: [] 
    #visible: [] 
    #appends: [] 
    #fillable: [] 
    #guarded: array:1 [▶] 
    #dates: [] 
    #dateFormat: null 
    #casts: [] 
    #touches: [] 
    #observables: [] 
    #with: [] 
    +exists: true 
    +wasRecentlyCreated: false 
} 

オブジェクトは存在しますが、Laravelは属性に直接アクセスしようとすると正しく表示されません。誰が問題がどこにあるのか知っていますか?それはLaravelか、おそらくlaravel-translatableパッケージですか?

答えて

0

このコードは、オブジェクトのコレクションを返します。

$categoryModel->with('category')->get(); 

をしかし、あなたはオブジェクトとしてそれを使用しようとしていると、あなたがエラーを取得している理由です。あなたはそれにオブジェクトを使用するコレクションを反復処理する必要があるので、このような何かしようと

@foreach ($categories as $category) 
    {{ $category->category->name }} 
@endforeach 
+0

OK]をクリックして、あなたの質問を更新(またはどこかesle投稿) '{{DD($カテゴリの結果としてください)}} '内側foreachループしてください。 –

+0

質問が更新されました。うーん、奇妙な、カテゴリの関係はnullです。なぜ私は熱心な負荷の親カテゴリにしようとしたのですか? – fsasvari

+1

おそらくコレクションの最初のカテゴリにはカテゴリや何かがありませんか? –

関連する問題